当前位置: 首页 > news >正文

【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件

注意:考虑到编辑器扩展的内容比较多,我将编辑器扩展的内容分开,并全部整合放在【unity游戏开发——编辑器扩展】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 前言
  • 常用的EditorGUILayout控件
  • 专栏推荐
  • 完结

前言

EditorGUI是一个主要用于绘制编辑器拓展 UI 的工具类,主要是绘制编辑器功能中会用到的一些特殊UI控件。EditorGUILayout是一个带有自动布局功能的 EditorGUI 绘制工具类。

官方文档:EditorGUILayout官方文档

常用的EditorGUILayout控件

我就不一一介绍了,直接放出最终例子,大家对照着效果查看就行了。

using UnityEditor;
using UnityEngine;public class EditorGUIWindow : EditorWindow
{int layer;string tag;Color color;public enum E_TestType{One = 1,Two = 2,Three = 4,One_and_Two = 1 | 2,}E_TestType type;E_TestType mul_type;string[] strs = { "选择123", "选择234", "选择345" };int[] ints = { 123, 234, 345 };int num = 0;GameObject gameObj;int i;int i2;float f;double d;long l;string str;Vector2 vec2;Vector3 vec3;Vector4 vec4;Rect rect;Bounds bounds;BoundsInt boundsInt;bool isHide;bool isHideGroup;bool isTog;bool isTogLeft;bool isTogGroup;bool isTog1;bool isTog2;float fSlider;int iSlider;float leftV;float rightV;AnimationCurve curve = new AnimationCurve();Vector2 vec2Pos;[MenuItem("编辑器拓展/自定义窗口拓展/EditorGUI绘制自定义窗口")]private static void OpenEditorGUIWindow(){EditorGUIWindow win = EditorWindow.GetWindow<EditorGUIWindow>("EditorGUI知识讲解窗口");win.Show();}private void OnGUI(){// 文本控件EditorGUILayout.LabelField("文本标题", "测试内容");EditorGUILayout.LabelField("文本内容");// 层级标签控件layer = EditorGUILayout.LayerField("层级选择", layer);tag = EditorGUILayout.TagField("标签选择", tag);// 颜色获取控件color = EditorGUILayout.ColorField(new GUIContent("自定义颜色获取"), color, true, true, true);// 枚举选择type = (E_TestType)EditorGUILayout.EnumPopup("枚举选择", type);mul_type = (E_TestType)EditorGUILayout.EnumFlagsField("枚举多选", mul_type);// 整数选择控件num = EditorGUILayout.IntPopup("整数单选框", num, strs, ints);EditorGUILayout.LabelField("整数单选框选中值", num.ToString());// 按钮if (EditorGUILayout.DropdownButton(new GUIContent("下拉按钮"), FocusType.Passive)) Debug.Log("你点击了下拉按钮");if (EditorGUILayout.LinkButton("链接按钮")) Debug.Log("你点击了链接按钮");//对象关联gameObj = EditorGUILayout.ObjectField("关联资源对象", gameObj, typeof(GameObject), false) as GameObject;//各类型输入控件i = EditorGUILayout.IntField("Int输入框", i);EditorGUILayout.LabelField("前面Int输入框内容", i.ToString());i2 = EditorGUILayout.DelayedIntField("Int输入框", i2);//Delayed开头的输入控件和普通输入控件的区别:普通输入控件在输入时,会立即响应输入,而Delayed开头的输入控件只有在用户按 Enter 键或将焦点从字段移开之后,返回值才会修改。EditorGUILayout.LabelField("前面Int输入框内容", i2.ToString());l = EditorGUILayout.LongField("long输入框", l);f = EditorGUILayout.FloatField("Float 输入:", f);d = EditorGUILayout.DoubleField("double 输入:", d);str = EditorGUILayout.TextField("Text输入:", str);vec2 = EditorGUILayout.Vector2Field("Vec2输入: ", vec2);vec3 = EditorGUILayout.Vector3Field("Vec3输入: ", vec3);vec4 = EditorGUILayout.Vector4Field("Vec4输入: ", vec4);rect = EditorGUILayout.RectField("rect输入: ", rect);bounds = EditorGUILayout.BoundsField("Bounds输入: ", bounds);boundsInt = EditorGUILayout.BoundsIntField("Bounds输入: ", boundsInt);//折叠控件isHide = EditorGUILayout.Foldout(isHide, "折叠控件", false);// 第二个参数为true代表点击整体都能展开收起,为false只能点击前面箭头展开收起if (isHide){EditorGUILayout.LabelField("折叠文本内容");EditorGUILayout.LabelField("折叠文本内容2");}//折叠组控件isHideGroup = EditorGUILayout.BeginFoldoutHeaderGroup(isHideGroup, "折叠组控件");//和折叠的主要区别是折叠组会高亮,且折叠组需要结束组if (isHideGroup){EditorGUILayout.LabelField("折叠组文本内容");EditorGUILayout.LabelField("折叠组文本内容2");}EditorGUILayout.EndFoldoutHeaderGroup();// 开关控件isTog = EditorGUILayout.Toggle("开关控件", isTog);isTogLeft = EditorGUILayout.ToggleLeft("左侧开关", isTogLeft);//开关组控件isTogGroup = EditorGUILayout.BeginToggleGroup("开关组控件", isTogGroup);isTog1 = EditorGUILayout.Toggle("开关控件1", isTog1);isTog2= EditorGUILayout.Toggle("开关控件2", isTog2);EditorGUILayout.EndToggleGroup();//滑动条控件fSlider = EditorGUILayout.Slider("滑动条", fSlider, 0, 10);iSlider = EditorGUILayout.IntSlider("整形滑动条", iSlider, 0, 10);//双块滑动条控件EditorGUILayout.MinMaxSlider("双块滑动条", ref leftV, ref rightV, 0, 10);EditorGUILayout.LabelField(leftV.ToString());EditorGUILayout.LabelField(rightV.ToString());//提示框控件EditorGUILayout.HelpBox("一般提示", MessageType.None);EditorGUILayout.HelpBox("感叹号提示", MessageType.Info);EditorGUILayout.HelpBox("警告符号提示", MessageType.Warning);EditorGUILayout.HelpBox("错误符号提示", MessageType.Error);//间隔控件EditorGUILayout.Space(10);// 间隔控件      EditorGUILayout.LabelField("内容1");EditorGUILayout.Space(50);// 间隔控件EditorGUILayout.LabelField("内容2");//动画曲线控件curve = EditorGUILayout.CurveField("曲线控件", curve);//布局相关APIEditorGUILayout.BeginHorizontal();// 开始水平布局EditorGUILayout.LabelField("水平布局内容");EditorGUILayout.LabelField("水平布局内容");EditorGUILayout.LabelField("水平布局内容");EditorGUILayout.EndHorizontal();// 结束水平布局EditorGUILayout.BeginVertical();// 开始垂直布局EditorGUILayout.LabelField("垂直布局内容");EditorGUILayout.LabelField("垂直布局内容");EditorGUILayout.LabelField("垂直布局内容");EditorGUILayout.EndVertical();// 结束垂直布局vec2Pos = EditorGUILayout.BeginScrollView(vec2Pos);// 开启滚动视图EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.LabelField("滚动视图内容");EditorGUILayout.EndScrollView();// 结束滚动视图}
}

效果
在这里插入图片描述
在这里插入图片描述


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

相关文章:

【unity游戏开发——编辑器扩展】使用EditorGUI的EditorGUILayout绘制工具类在自定义编辑器窗口绘制各种UI控件

注意&#xff1a;考虑到编辑器扩展的内容比较多&#xff0c;我将编辑器扩展的内容分开&#xff0c;并全部整合放在【unity游戏开发——编辑器扩展】专栏里&#xff0c;感兴趣的小伙伴可以前往逐一查看学习。 文章目录 前言常用的EditorGUILayout控件专栏推荐完结 前言 EditorG…...

310. 最小高度树

题目 树是一个无向图&#xff0c;其中任何两个顶点只通过一条路径连接。 换句话说&#xff0c;任何一个没有简单环路的连通图都是一棵树。 给你一棵包含 n 个节点的树&#xff0c;标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表&#xff08;每一个边都…...

SpringBoot中配置绑定到bean中

一、回顾value注解 SpringBoot中我们该如何将applicaton.properties中的数据绑定到bean中呢&#xff1f;在之间我们是可以通过value注解&#xff0c;在SpringBoot自动启动后&#xff0c;会自动的去相应的路径中去寻找applicaton.properties配置文件&#xff0c;然后将相应的值…...

Linux下的c/c++开发之操作Redis数据库

C/C 操作 Redis 的常用库 在 C/C 开发中操作 Redis 有多种方式&#xff0c;最主流的选择是使用第三方客户端库。由于 Redis 官方本身是使用 C 编写的&#xff0c;提供的 API 非常适合 C/C 调用。常见的 Redis C/C 客户端库包括&#xff1a; hiredis&#xff1a;官方推荐的轻量…...

通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置 1. SMTP服务开通&#xff08;以qq邮箱为例&#xff09; 登录qq邮箱网页端&#xff0c;进入「设置」-「POP3/SMTP/IMAP」 开启「SMTP服务」并获取16位授权码&#xff08;替代邮箱密码使用&#xff09; 记录关键参数&#xff1a; SMTP服务器地址&#…...

数学复习笔记 8

前言 成为一个没有感情的刷题机器就可以变得很强了。 逆矩阵的运算 随便算一下就算出来了&#xff0c;没啥难的。主要是用天然可交换的矩阵来算。有三个天然可交换的矩阵&#xff0c;某矩阵和单位阵&#xff0c;该矩阵和它的伴随矩阵&#xff0c;该矩阵和它的逆矩阵。一定要…...

【证书与信任机制​】自签名证书的风险与适用场景​​

关于 自签名证书的风险与适用场景 的详细解析&#xff0c;以及在内网测试中安全使用自签名证书的实践指南&#xff1a; 一、自签名证书的核心风险 1. 信任缺失与安全警告 • 浏览器/操作系统不信任&#xff1a;自签名证书未被权威CA签发&#xff0c;客户端默认视为“不安全”&a…...

[python] Python单例模式:__new__与线程安全解析

一 实例的创建过程 我们之前了解过在构造一个类的实例化对象时,会默认调用__init__方法&#xff0c;也就是类的初始化也叫构造函数&#xff0c;但其实在调用__init__方法前会首先调用__new__方法&#xff08;只有在py3新式类才有&#xff09;。即下面 __new__(): 创建实例 作…...

【SSL证书系列】操作系统如何保障根证书的有效性和安全

操作系统通过多层次的安全机制和技术手段保障根证书的有效性和安全性&#xff0c;防止篡改、伪造或滥用。以下是核心保障措施&#xff1a; 1. 根证书的存储与隔离 • 受保护的存储区域 根证书存储在操作系统的受信任根证书存储区&#xff08;如Windows的“受信任的根证书颁发机…...

毕业论文,如何区分研究内容和研究方法?

这个问题问得太好了&#xff01;&#x1f60e; “研究内容”和“研究方法”经常被初学者&#xff08;甚至一些老油条&#xff09;混淆&#xff0c;尤其写论文开题报告时&#xff0c;一不小心就“内容”和“方法”全混在一块儿&#xff0c;连导师都看懵。 今天就来给大家一文讲…...

《Effective Python》第2章 字符串和切片操作——深入理解 Python 中 __repr__ 与 __str__

引言 本文基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 12: Understand the Difference Between repr and str When Printing Objects 后的总结与延伸。在 Python 中&#xff0c;__repr__ 和 __str__ 是两个与对象打印密切相关的魔术方法&am…...

C及C++的SOAP协议库

一.gSOAP gSOAP 是一个功能强大的开源工具包&#xff0c;专为 C 和 C 设计&#xff0c;用于快速开发基于 SOAP 协议的 Web 服务和客户端。 1.协议支持 SOAP 版本&#xff1a;完整支持 SOAP 1.1/1.2 规范&#xff0c;包括消息格式、编码规则和错误处理。 传输协议&#xff1a…...

推荐一个Winform开源的UI工具包

从零学习构建一个完整的系统 推荐一个开源、免费的适合.NET WinForms 控件的套件。 项目简介 Krypton是一套开源的.Net组件&#xff0c;用于快速构建具有丰富UI交互的WinForms应用程序。 丰富的UI控件&#xff0c;提供了48个基础控件&#xff0c;如按钮、文本框、标签、下拉…...

【Linux内核】内存管理之虚拟内存详解

目录 一、Linux 虚拟内存概述 二、虚拟内存的基本概念 1. 地址空间 2. 页表 3. 页面 三、虚拟内存的管理机制 1. 页面分配与回收 2. 页面置换 3. 内存映射 四、虚拟内存的保护机制 1. 访问权限 2. 写时复制 五、虚拟内存的优化技术 1. 大页 2. 透明大页 3. 内存…...

upload-labs通关笔记-第5关 文件上传之.ini绕过

目录 一、ini文件绕过原理 二、源码审计 三、渗透实战 1、查看提示 2、制作.user.ini文件 &#xff08;1&#xff09;首先创建一个文本文件 &#xff08;2&#xff09;保存文件名为.user.ini 2、制作jpg后缀脚本 &#xff08;1&#xff09;创建一个文本文件 &#xf…...

入门OpenTelemetry——部署OpenTelemetry

OpenTelemetry 部署模式 OpenTelemetry Collector 按部署方式分为 Agent 和Gateway 模式。 Agent 模式 在 Agent 模式下&#xff0c;OpenTelemetry 检测的应用程序将数据发送到与应用程序一起驻留的&#xff08;收集器&#xff09;代理。然后&#xff0c;该代理程序将接管并…...

构建现代化WPF应用:数据驱动开发与高级特性解析

启动时默认打开哪个界面是在App.xaml的StartupUri属性中设置。 Window标签 x:Class起到了部分类的作用&#xff0c;让XAML与CS文件做关联&#xff0c;起到了映射的作用。 xmlns是XML NameSpace的简称&#xff0c;起到了命名控件的作用&#xff0c;与代码中命名空间不同的是&a…...

MATLAB实现振幅调制(AM调制信号)

AM调制是通信专业非常重要的一个知识点。今天我们使用MATLAB编程实现AM调制。 我们实现输入一个载波信号的频率与调制信号的频率后&#xff0c;再输入调幅度&#xff0c;得到已调信号的波形与包络信号的波形&#xff0c;再使用FFT算法分析出已调信号的频谱图。 源代码&#x…...

loss = -F.log_softmax(logits[:, -1, :], dim=1)[0, irrational_id]

loss = -F.log_softmax(logits[:, -1, :], dim=1)[0, irrational_id] 解释这行代码 loss = -F.log_softmax(logits[:, -1, :], dim=1)[0, irrational_id] 的具体含义和背后的数学原理。 1. 代码拆解与功能 这行代码的核心是计算负对数似然损失(Negative Log Likelihood Los…...

NSSCTF [HNCTF 2022 WEEK4]

题解前的吐槽&#xff1a;紧拖慢拖还是在前段时间开始学了堆的UAF(虽然栈还没学明白&#xff0c;都好难[擦汗])&#xff0c;一直觉得学的懵懵懂懂&#xff0c;不太敢发题解&#xff0c;这题算是入堆题后一段时间的学习成果&#xff0c;有什么问题各位师傅可以提出来&#xff0c…...

基于springboot+vue的医院门诊管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat12开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;Maven3.3.9 系统展示 系统登录 系统首…...

大模型越狱:技术漏洞与安全挑战——从原理到防御

近年来&#xff0c;随着大模型能力的飞速提升&#xff0c;其安全性问题日益受到关注。其中&#xff0c;“大模型越狱”&#xff08;Model Jailbreaking&#xff09;成为热议焦点——指通过特定手段绕过模型的安全限制&#xff0c;诱导其生成有害、违法或超出设计范围的内容。本…...

Linux 常用命令 -hostnamectl【主机名控制】

简介 hostnamectl 命令中的 “hostname” 顾名思义&#xff0c;指的是计算机在网络上的名称&#xff0c;“ctl” 是 “control” 的缩写&#xff0c;意味着控制。hostnamectl 命令用于查询和修改系统主机名以及相关的设置。它通过与 systemd 系统管理器交互&#xff0c;允许用…...

《Python星球日记》 第72天:问答系统与信息检索

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、问答系统概述1.问答系统的工作原理2. 问答系统的典型应用场景 二、问答系统…...

VUE3 -综合实践(Mock+Axios+ElementPlus)

目录 前言 目标 1.工程创建 2.Mock 2.1 配置Mock 扩 展 2.2 定义模拟数据 2.3 创建Mock服务器 3.导入ElementPlus 4.表格页面搭建 5.动态路由跳转 6.详情页面的制作 前言 基于前文 VUE3详细入门&#xff0c;我们对VUE3的基本使用有了初步的了解&#xff0c;下…...

Qt原型模式实现与应用

在Qt中实现原型模式&#xff08;Prototype Pattern&#xff09;可以通过以下步骤完成。该模式的核心是通过克隆现有对象来创建新对象&#xff0c;而非通过传统的构造函数。以下是详细说明和示例&#xff1a; 1. 原型模式的核心概念 目的&#xff1a;避免重复初始化对象的高成本…...

语音识别-2

上一篇关于语音识别, 虽然能用,但在系统适配,机器适配方面,速度,性能等还是有优化的地方.所以这篇是关于这些的. 1.蓝牙优化 A2DP:是一种单向的高品质音频数据传输链路,通常用于播放立体声音乐;SCO: 则是一种双向的音频数据的传输链路,该链路只支持8K及16K单声道的音频数据…...

ElasticSearch深入解析(十二):聚合——分桶聚合、指标聚合、管道子聚合

文章目录 一、分桶聚合1. 分桶聚合的核心逻辑与核心类型2. 分桶聚合的高级特性 二、指标聚合1. 指标聚合的核心逻辑与基础类型&#xff08;1&#xff09;基础统计指标&#xff08;单值输出&#xff09;&#xff08;2&#xff09;复合统计指标&#xff08;多值输出&#xff09; …...

互联网大厂Java求职面试:AI内容生成平台下的高并发架构设计与性能优化

互联网大厂Java求职面试&#xff1a;AI内容生成平台下的高并发架构设计与性能优化 场景背景&#xff1a; 郑薪苦是一名经验丰富的Java开发者&#xff0c;他正在参加一家匿名互联网大厂的技术总监面试。这家公司专注于基于AI的内容生成平台&#xff0c;支持大规模用户请求和复杂…...

论MCU如何在Fatfs中使用Flash接口的方法

前提&#xff1a; MCU移植了FS&#xff0c;如FATFSOSFMount工具 OSFMount或者其他磁盘工具用于挂载.img镜像&#xff0c;可格式化文件系统打开并放入实际使用的文件 步骤 1. cmd命令建立空.img镜像&#xff0c;以下为12MB fsutil file createnew fat.img 120000002. OSFMo…...

Python+Selenium爬虫:豆瓣登录反反爬策略解析

1. 引言 在当今互联网时代&#xff0c;数据抓取&#xff08;爬虫&#xff09;技术广泛应用于数据分析、市场调研、自动化测试等领域。然而&#xff0c;许多网站采用动态加载技术&#xff08;如Ajax、React、Vue.js等框架&#xff09;来渲染页面&#xff0c;传统的**<font s…...

nt!MiDispatchFault函数分析之第一次循环前后的变化

第一部分&#xff1a;nt!MiDispatchFault函数分析之第一次循环之前 1: kd> !pte 0x002bf810 VA 002bf810 PDE at C0300000 PTE at C0000AFC contains 7B314867 contains 00000000 pfn 7b314 ---DA--UWEV not valid 1: kd> dd C0000AFC…...

JMeter性能测试工具使用

JMeter是一款强大的性能测试工具&#xff0c;由Java编写&#xff0c;小巧轻便&#xff0c;最关键的是开源免费&#xff0c;现在已经成了主流的性能测试工具。 下面介绍一下基本的安装使用、高级功能及可视化实时图表展示&#xff0c;带你们感受一下JMeter的世界~ 1、安装 1.…...

Windows 环境下安装 Node 和 npm

安装 Node.js 和 npm https://nodejs.org/zh-cn/download 执行 fnm install 22 之后&#xff0c;执行 node 或 npm 提示找不到命令 fnm env 看环境变量 找到 node 和 npm 命令在 C:\Users\HUAWEI\AppData\Roaming\fnm\node-versions\v22.15.0\installation 目录下&#xff0…...

开发指南112-样式的优先级别

在前端样式设置里&#xff0c;界面元素一般会多个地方进行定义和影响。一般而言&#xff0c;CSS样式的优先级如下&#xff1a; ‌1、内联样式‌&#xff1a;style属性中定义的样式&#xff0c;具有最高的优先级。 ‌2、ID选择器‌&#xff1a;通过ID选择器指定的样式&#xff…...

单向通信机制EventSource

EventSource 是浏览器提供的一种实现服务器推送 简称 SSE 基于 HTTP 协议的单向通信机制 可以通过服务器将实时数据推送到客户端 而不需要客户端不断发起请求EventSource 和 WebSocket 都可以实现服务器向客户端的实时数据推送&#xff0c;但它们有不同的适用场景&#xff1a;E…...

PyTorch中mean(dim=1)的深度解析

mean(dim=1) 是什么意思 在自然语言处理中,文本经过分词器处理后会转换为token序列,每个token对应一个向量表示。mean(dim=1) 的作用是在序列维度上对这些向量取平均,将整个序列压缩为单个向量。下面我用具体例子解释: 1. 张量的维度结构 假设我们有一个输入文本:"…...

Xcode报错:“Set `maskView` to `nil` before adding it as a subview of ZFMaskView

Assertion failure in -[ZFMaskView _addSubview:positioned:relativeTo:] 嗯&#xff0c;坑爹的IOS18&#xff0c;当你基于UIView实现的自己的子类中定义一个属性并初始化时就会出现崩溃&#xff01; /// 遮罩property (nonatomic, strong) UIView *maskView; 因为UIVIEW本…...

uniapp -- 验证码倒计时按钮组件

jia-countdown-verify 验证码倒计时按钮组件 一个用于发送短信验证码的倒计时按钮组件&#xff0c;支持自定义样式、倒计时时间和文本内容。适用于各种需要验证码功能的表单场景。 代码已经 发布到插件市场 可以自行下载 下载地址 特性 支持自定义按钮样式&#xff08;颜色、…...

e.g. ‘django.db.models.BigAutoField‘.

在Django框架中&#xff0c;django.db.models.BigAutoField 是一个用于数据库模型的字段类型&#xff0c;它用于自动增长的ID字段。这个字段类型特别适用于需要处理大量数据的应用&#xff0c;比如在大型网站或应用中&#xff0c;普通的 AutoField 可能不足以存储增长的ID值&am…...

【​​HTTPS基础概念与原理​】对称加密与非对称加密在HTTPS中的协作

在HTTPS通信中&#xff0c;对称加密和非对称加密协同工作&#xff0c;共同保障数据的机密性和密钥交换的安全性。以下是两者的协作机制及RSA、ECDHE等算法的核心作用&#xff1a; 一、对称加密与非对称加密的分工 1. 对称加密&#xff08;如AES、ChaCha20&#xff09; • 作用&…...

ESP系列单片机选择指南:结合实际场景的最优选择方案

前言 在物联网(IoT)快速发展的今天&#xff0c;ESP系列单片机凭借其优异的无线连接能力和丰富的功能特性&#xff0c;已成为智能家居、智慧农业、工业自动化等领域的首选方案。本文将深入分析各款ESP芯片的特点&#xff0c;结合典型应用场景&#xff0c;帮助开发者做出最优选择…...

使用Thrust库实现异步操作与回调函数

使用Thrust库实现异步操作与回调函数 在Thrust库中&#xff0c;你可以通过CUDA流(stream)来实现异步操作&#xff0c;并在适当的位置插入回调函数。以下是如何实现的详细说明&#xff1a; 基本异步操作 Thrust本身并不直接暴露CUDA流接口&#xff0c;但你可以通过以下方式使…...

【Python 异常处理】

Python 的异常处理机制是构建健壮程序的核心工具&#xff0c;通过 try-except 结构实现优雅的错误管理。以下是系统化指南&#xff1a; 一、基础异常处理结构 try:# 可能出错的代码result 10 / 0 except ZeroDivisionError:# 异常处理逻辑print("错误&#xff1a;除数不…...

40:相机与镜头选型

第一章 相机 1.1 理论基础 1.1.1 相机分类 1 &#xff09;按照芯片类型&#xff1a; CCD 相机、 CMOS 相机 2 &#xff09;按照传感器的结构特性&#xff1a;线阵相机、面阵相机 3 &#xff09;按照扫描方式&#xff1a;隔行扫描相机、逐行扫描相机 4 &#xff09;按…...

【ESP32-S3】Guru Meditation Error 崩溃分析实战:使用 addr2line 工具 + bat 脚本自动解析 Backtrace

【ESP32-S3】Guru Meditation Error 崩溃分析实战&#xff1a;使用 addr2line 工具 bat 脚本自动解析 Backtrace 在使用 ESP32-S3 进行开发时&#xff0c;我们常常遇到串口报错&#xff0c;例如&#xff1a; Guru Meditation Error: Core 1 paniced (LoadProhibited). Exce…...

win11 VSCode 强制弹窗微软登录

今天在一台新电脑上配置VSCode同步的时候&#xff0c;用了微软账号&#xff0c;因为这台电脑比较特殊&#xff0c;不方便科学上网&#xff0c;所以一开始用的微软账户登录&#xff0c;导致和GitHub账号登录的配置、扩展等等不同步。 后面准备改用GitHub账号登录发现不行&#…...

Thrust库中的Gather和Scatter操作

Thrust库中的Gather和Scatter操作 Thrust是CUDA提供的一个类似于C STL的并行算法库&#xff0c;其中包含两个重要的数据操作&#xff1a;gather(聚集)和scatter(散开)。 Gather操作 Gather操作从一个源数组中按照指定的索引收集元素到目标数组中。 函数原型&#xff1a; t…...

springboot + mysql8降低版本到 mysql5.7

springboot mysql8降低版本到 mysql5.7 <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency>spring:datasource:driverClassName: com.mysql.jdbc.D…...

在 Windows 中配置使用 WSL 来运行 Linux 环境,主要有以下步骤:

一、安装 WSL 方法一&#xff1a;使用 wsl --install 命令 &#xff1a;以管理员身份运行 PowerShell 或 Windows 命令提示符&#xff0c;输入 wsl --install 命令&#xff0c;该命令将自动启用运行 WSL 所需的功能&#xff0c;并安装默认的 Linux 发行版 Ubuntu。 方法二&…...