自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Unity基于前缀树的红点系统优化--从零到一手撕并且优化

本红点系统不能设置红点值,添加红点就是num++;只能对子节点进行修改,非子结点的值由系统来处理红点的键采用params string[] 作为键可以动态添加节点,只需要输入名字即可。

2024-07-23 17:51:42 2413

原创 编辑器开发IMGUI/GUI—重新实现List的序列化实现自定义List默认值控制

通过手动实现效果背景,unity自带的序列化在数据量较大的时候很不好用,每次都要手动输入值,也没有默认值也不能在里面嵌入一些下拉栏来选择通过手动实现效果。

2024-06-28 18:11:42 443

原创 Unity依赖查找工具-通过图片GUID查找使用 这个图片的预制体

可以一键查找的被引用的预制体使用场景分析我们在做游戏换皮的时候,为了方便替换后面图片的检查,可以根据当前图片来查找它被那些预制体引用了,并且显示出来,这样方便我们检查换皮后的效果。也可以扩展作为检查此资源有没有被使用的工具,方便后续处理项目冗余资源。

2024-06-28 17:00:31 667

原创 Unity UGUI一键绑定UI控件工具(编辑器拓展)-基于反射特性优化

里面的path用来存储这个组件的地址。

2024-06-28 16:00:52 1310 1

原创 Unity UGUI一键绑定UI控件工具(编辑器拓展)

实现自动生成代码绑定UI控件 并生成字典保存UI控件减少自己拖拽 和手动书写过程 适用动态加载面板建议搭配UI框架使用。

2024-04-16 11:23:10 2245

原创 Unity-如何使用Profiler

当前情况不能查看具体的消耗进入DeepProfile模式可以看到具体消耗了注意:在deepProfile模式下内存消耗和运行时间可能不准 此模式采样性能消耗要高一点可以看到现在Update自身消耗0msupdate里面的test函数消耗0.2mstest里面debug消耗0.14mssubmethod消耗0.05ms此时我们往test里面加入一个for循环赋值 会发现Selftime变成了0.2ms那么 我们如何查看一段代码的消耗呢。

2024-04-15 14:40:26 601 1

原创 彻底搞懂UGUI合批计算

iv.如果CurrentUI要渲染,下面有n个元素与其相交,则按照步骤iii,分别计算出n个Depth(Depth_1、Depth_2、Depth_3…),然后CurrentUI.Depth取其最大值,即CurrentUI.Depth = max(Depth_1, Depth_2, Depth_3,…B的mesh构成的矩形和A的mesh构成的矩形有相交,注意不是RectTransform的矩形相交,这点需要认真理解一下,ii.要渲染,下面没有其他UI元素与其相交,则Depth = 0。合起来才是充分条件)

2024-03-21 15:36:33 879 1

原创 C#字符串特点

c#String的不变特性,可读但不可写性 - 麦田HH - 博客园 (cnblogs.com)

2023-12-13 10:17:40 109 1

原创 Unity&&C#学习笔记-is as

3、如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;4、用as来进行类型转换的时候,所要转换的对象类型必须是目标类型或者转换目标类型的派生类型。如果对象引用为null,那么is操作符总是返回为false,因为没有对象可以检查其类型。1、检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,如果一个对象是某个类型或是其父类型的话就返回为true。,否则的话就会返回为false。

2023-12-11 13:29:00 458 1

原创 Unity&&C#学习笔记-变体

协变关键字out 逆变关键字in。父类对象可以引用子类。

2023-11-30 10:14:12 104

原创 Unity&&C#学习笔记-Unity如何使用ILDasm工具查看IL代码(unity)

项目目录\Library\ScriptAssemblies。

2023-11-29 17:23:04 228 1

原创 Unity&&C#学习笔记-变体前置知识ref、out、in详解

然而从本质上来说类的静态成员函数的函数形参中没有默认的,导致不能调用具体实例对象的成员因为静态方法在类加载的时候就已经初始化,但非静态的资源要在类手动创建对象new出来以后才会存在静态方法存在的时候无法保证它访问的非静态资源存在,就算能保证存在,你也无法知道获得的是哪个对象的非静态资源。

2023-11-29 10:56:16 633 1

原创 Unity&&C#学习笔记-反射

每个类,我们的编译器都知道数据成员的偏移,函数代码段的位置,运行的时候,我们的C#系统会为我们每个类----》描述实例(数据内存);Type类型,Type实例,属于System名字空间;Type:一些类型的描述信息int type;//类型//这个字段的内存大小;int offset;//在内存对象中的内存偏移int type;//静态的还是,普通的;int offset;//函数代码指令的地址;l/当前类的实例的内存大小;//当前这个类的数据成员;

2023-11-28 11:22:31 150 1

原创 SubLime中文显示错误

错别字。

2023-11-27 16:00:26 67 1

原创 Unity&&C#学习笔记-委托和事件详解

1、委托可以把一个方法作为参数代入另一个方法。委托可以理解为指向一个函数的指针。2、委托和事件没有可比性,因为委托是类型,事件是对象3、其实事件是委托的一个修饰符,加了event(事件)修饰之后,委托就被阉割了,假设这个加了修饰符的事件称为事件1,通过事件1我们可以更好地控制注册和注销,也就是对于一个外部类,那么他只能“注册自己+=、注销自己-=”,例如上面的ClassA,如果我们事件的注册是在ClassA内部进行的,那么它就只能注册自己内部的方法到事件上。另外,外界也不能主动地触发一个事件。

2023-11-27 11:07:26 132 1

原创 Lua面向对象元表

【代码】Lua面向对象元表。

2023-11-23 11:08:47 59

原创 Unity&&C#学习笔记静态类详解

1:仅包含静态成员。(非静态成员必须依赖于对象实例才能访问。由于静态方法不依赖于任何对象实例,所以它无法引用或访问非静态成员)2:无法实例化。3:是密封的。4:不能包含非静态构造函数。5:不能继承和派生,静态类只用于包含静态成员的类型,它既不能实例化,静态类的特性是防止继承,防止外部来NEW。它相当于一个sealed abstract类。静态成员也会被继承静态构造函数会在调用静态类的方法时自动调用。

2023-11-23 10:39:04 242

原创 Unity&&C#学习笔记异步加载和协程与迭代器

异步加载和同步加载的区别用另外一种概念描述就是“阻塞”。同步方法会阻塞在当前代码的执行,而其它部分(如UI)都在等着它结束调用,因此如果资源加载很耗时,那么就会出现“卡住了”的现象。异步加载则是非阻塞的,调用完异步方法后,代码继续执行,而加载工作由Unity在后台另开辟一个异步线程来进行。而是异步方法的生效至少要一帧的时间。异步加载的这个特性是十分重要的,不仅对于Resources类的方法,对于AssetBundle也一样。

2023-11-20 10:32:06 140 1

原创 Unity&&C#学习笔记手写Asset加载管理类代码

根据项目替换 PathUrl 和 MainABName主包名这里安卓IOS电脑默认主包名就是简写。前置知识,了解asset的加载API和asset依赖,以及asset三种加载方式。Singleton<ABManager>是单例模式的父类 可以不继承自己写。包含同步加载3异步加载3和卸载方法2。

2023-11-17 14:39:47 117 1

原创 Unity&&C#学习笔记-const、readonly、static 与 sealed

在类里面可以不初始化值,有默认值readonly修饰的常量则可以延迟到构造函数初始化;引用类型readonly只有地址是不变的。

2023-11-15 10:43:23 978 1

原创 Unity&&C#学习笔记-内存分配和垃圾回收

C#代码在计算机系统中怎么执行的呢?主要通过一下几个部分:可以看到,C#语言代码经过编译器编译成中间语言IL(不同计算机操作系统编译的IL是一样的),然后不同操作系统的CLR将IL编译为机器码,最终被计算机执行。即公共语言运行时(Common Language Runtime),是中间语言(IL)的运行时环境,负责将编译生成的MSIL编译成计算机可以识别的机器码,负责资源管理(和垃圾回收等)。,先进后出的一种数据结构,随着线程而分配。

2023-11-14 10:48:03 156

原创 Unity&&C#学习笔记-重写和隐藏

重写(Override)重新实现定义在基类中的虚方法,并且在实际运行时根据对象类型来调用相应的方法。根据对象类型来调用相应的方法。

2023-11-11 13:54:08 563 1

原创 Unity&&C#学习笔记-拆装箱,List,浅深拷贝,equals和==

Integer是一个封装类,用于表示整数。它是int的封装类,可以将int类型的数据转换为Integer类型的数据。Integer类提供了许多操作整数的方法,使得整数的操作更加方便和灵活。int是基本数据类型,而Integer是int的封装类。int类型的数据直接存储在内存中的栈中,而Integer类型的数据则存储在堆中的对象中。对值类型在堆中分配一个对象实例,并将该值复制到新的对象中。按三步进行。

2023-11-11 13:09:06 485 1

原创 Unity&&C#学习笔记-抽象方法虚方法抽象类:

5、接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法,抽象类可以定义属性、字段、包含有实现的方法。3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)10、如果要设计小而简练的功能块,则使用接口,如果要设计大的功能单元,则使用抽象类。2、如果抽象类的子类不是抽象类,那么子类中必须重写父类抽象类的所有抽象方法。3、接口是一组行为规范,抽象类是一个不完全的类,着重于族的概念。3、如果类包含抽象方法,那么该类也是抽象的,也必须声明为抽象的。

2023-11-11 11:56:34 298 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除