- 博客(363)
- 资源 (21)
- 收藏
- 关注
原创 C#字典底层原理
Dictionary是一种键值对的形式存放数据,即 key和value一一映射。key的类型没有限制,可以是整数、字符串甚至是实例对象
2024-04-21 17:49:09
2550
原创 Unity中的两种ScriptingBackend
ios:unity只有il2cpp模式的编译才支持64位系统,mono是不支持的,在快速开发阶段仍然支持Mono,但是不能再向Apple提交Mono(32位)的应用苹果在2016年1月就要求所有新上架游戏必须支持64位架构,所以必须要选il2cppandroid:从2019年8月1日起,在Google Play上发布app必须支持64位体系。从2021年8月1日起,Google Play将停掉尚未支持64位体系的APP,在国内上架32位和64位都可以WebGL和UWP:只支持IL2CPP。
2023-09-23 18:17:40
1862
原创 Unity中实现HybridCLR热更新
HybridCLR又称作huatuo(华佗)、wolong(卧龙)热更方案,底层是C++编写的,是一种热更新方案,与Lua、ILRuntime等都是不同的热更方案HybridCLR扩充了il2cpp的代码,使它由纯AOT runtime变成AOT+Interpreter混合runtime,进而支持动态加载assembly,实现热更新HybridCLR官网热更新是指当游戏出现bug,或者需要修改,增加某个功能的时候,我们不需要重新下载安装包,就可以更新游戏内容。
2023-09-19 22:01:05
6331
原创 Unity中程序集dll
一个程序集由一个或多个文件组成,通常为扩展名.exe和.dll的文件称为程序集,.exe是静态的程序集,可以在.net下直接运行加载,因为exe中有一个main函数(入口函数),.dll是动态链接库,通过反射动态加载。程序集是一个AssemblyDefinitionFile.asmdef文件,它的内容是一个JSON格式的字段,创建之后,就可以打开直接编辑JSON。
2023-09-13 13:57:43
1878
原创 Unity中的数学基础——贝塞尔曲线
一条贝塞尔曲线是由一组定义的控制点P0到 Pn,n=1为线性,n=2为二次......第一个和最后一个控制点称为起点和终点,中间的控制点一般不会位于曲线上获取两个点之间的点就是通过线性插值( Mathf.Lerp),0
2023-08-25 18:14:44
4210
原创 C#中i++和++i的底层原理
我们都知道,i++是先取值,后计算。++i是先计算,后取值。下面说下它的底层原理i++先入栈再+1,++i先+1再入栈。
2023-07-31 14:13:29
1399
原创 Unity中实现2D遮罩
可以使用SpriteMask用作控制图形显示区域,SpriteRenderer用作显示图形,在SpriteRenderer中选择MaskInteraction遮罩类型。
2023-05-05 14:21:26
3694
原创 Unity物理相关组件——2D效应器
这些物理效应器用于模拟一些特殊物理区域或者表面,都需要配合2D碰撞器使用,并且勾选上Used by Effector。
2023-05-04 11:21:13
1341
原创 DirectX和OpenGL
以前软件开发缺乏标准,一种代码就只是对应着一种硬件和一种系统,这样导致的是开发的过程会非常繁琐。这时候就需要一个中间层在不同的软件和不同的硬件中进行沟通,就是API(API是执行一组相关操作的标准函数集合,图形API是针对GPU的图形库)。程序可以直接通过API进行构建从而不需要访问更底层的东西。API的意义在于简化编程的操作OpenGL和DirectX就是图形API,这些接口架起了上层应用程序和底层GPU之间沟通的桥梁。
2023-05-04 11:20:21
2034
原创 C#中的深拷贝和浅拷贝
深拷贝:一个对象深拷贝的时候,无论是引用类型对象还是值类型对象,都会创造一个全新的对象,新产生的对象和老对象没有关系浅拷贝:一个对象浅拷贝的时候,对于对象的值类型成员,会复制其本身,对于对象的引用类型成员,仅仅复制对象引用总结来说深拷贝和浅拷贝对于引用类型的处理不同,引用类型在浅拷贝时,拷贝的是对象的引用,引用类型在深拷贝时,拷贝的是完整的一份对象。
2023-03-16 15:14:16
1662
原创 Unity中的LOD
LOD为Levels of Detail的简称,意为为多细节层次简单来说就是将一个模型制作成不同精细程度,相机视野离得远的时候就显示高模,相机视野离得近的时候就显示低模,是一种用内存换渲染效率的方式
2023-02-03 11:14:39
2429
原创 SNV的使用
一:什么是SVN?SVN是一个版本控制系统,SVN全称Subversion,用于记录一个或多个文件内容变化,方便我们查阅特定版本的修改情况。以前在没有版本控制的时候,我们通常在项目根目录下这样命名项目:project_v1、project_v1.1、project_v2等等,通过这种方式记录我们项目的不同版本修改,有的时候还会在不同版本的文件中写一个说明,记录此版本项目新增、修改,删除等操作,这样的操作是很繁杂的,有的时候还可能因为一些非人为因素导致文件丢失的事故。
2023-02-02 17:01:26
1683
原创 Git和SVN
使用集中式版本控制系统如果服务器发生故障,则整个项目可能就丢失了,而分布式版本控制中每个人的电脑都是一个完整的版本库,当我们拉取时不是拉取最新的文件,而是把整个代码仓库完整地镜像下来,这样的话如果服务器出现故障,都可以用任何一个镜像出来的本地仓库恢复。早期出现的版本控制系统有:SVN、CVS等,它们是集中式版本控制系统,集中式版本控制系统有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同合作的开发人员都通过客户端连接到这台服务器,取出最新的文件或者提交更新。——集中式版本控制系统。
2023-02-02 10:33:18
1065
原创 Unity中的GC
GC就是Grabage Collector,当没有任何栈内存所指向的堆内存空间,所有的垃圾将被GC不定期进行回收并且释放无用内存空间,使这些内存可以再次使用,但是如果垃圾过多将影响到GC的处理性能,从而降低整体的程序性能,在实际开发之中,对于垃圾的产生越少越好对应的方法是GC.Collect,其功能就是强制对所有垃圾进行回收。
2022-12-25 16:10:12
6301
原创 C#中的String和StringBuilder
String和StringBuilder都是引用类型。StringBuilder是可变的字符串,它不会创建当前字符串的新修改实例而是在现有字符串对象中进行修改。String是不可变字符串,一旦被初始化后就不能改变其内容,String值改变的过程其实是创建了一个新的String对象赋值给了原对象(引用的改变)如果有大量的字符串修改、拼接操作则使用StringBuilder会极大的减少系统的开销。
2022-12-25 11:06:14
2709
原创 Unity中实现双向链表
双向链表是链表的一种,和单链表一样,双链表也是由节点组成,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。
2022-12-15 14:33:33
1276
原创 Unity中的Update与FixedUpdate
例如一个RPG手游,主角的移动通过在Update中用速度乘以时间差Time.deltaTime模拟,当某帧卡顿了很久,Time.deltaTime将会变得很大,导致下一帧主角会无视地图障碍直接瞬移到一个很远的距离导致穿模,超出地图等bug。而在FixedUpdate中会避免此问题,下面就针对Update与FixedUpdate深入研究一下——执行顺序Update在FixedUpdate之后执行。例如有两个脚本A和B,A中有Update和FixedUpdate,B中有FixedUpdate,A中有Updat
2022-11-09 18:16:34
7446
2
原创 Unity中的Timeline
Timeline与动画系统类似,但是它可以针对多个物体做出一系列多个动画,它可以创建多个轨道,对象激活与隐藏轨道,动画轨道,声音轨道等。每个轨道都可以单独编辑,轨道内的不同资源可以排列并且融合
2022-11-01 16:21:27
15662
原创 Unity中实现高级相机操作——Cinemachine插件
Cinemachine可以快速实现各种相机效果,例如跟随、分镜、推拉式镜头等,配合Timeline可以创建Cinemachine Track实现动画融合。
2022-10-10 10:50:16
7701
原创 Unity编辑器扩展——ReorderableList
我们定义一个数组或列表,默认是这样显示的这样显示有几个缺点——无法改表元素的顺序——如果添加一个元素,需要增加填写size的数值——如果要删除其中一个元素,非常麻烦ReorderableList可以让列表或数组在Inspector面板显示得更人性化一些。
2022-09-14 16:34:30
3485
原创 Unity编辑器扩展——SerializedObject
在Unity编辑器中,所有对象(UnityEngine.Object)都会被转换为SerializedObject并进行处理。当我们在Inspector中编辑组件的值时,其实不是在编辑Component组件的实例,而是在编辑SerializedObject的实例。
2022-09-05 20:14:25
2460
原创 Unity编辑器扩展——自动生成UI界面脚本
对于面板赋值或Find绑定UI组件,我们可以使用一种工具化的方式去自动生成代码并绑定对象,增加效率。
2022-09-04 22:39:52
3770
原创 Unity中的序列化和反序列化
序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程。序列化最主要的用途就是传递对象和保存对象在Unity中保存和加载、prefab、scene、Inspector窗口、实例化预制体等都使用了序列化与反序列化。...
2022-08-31 11:10:40
7414
原创 UGUI源码解析——RawImage
RawImage是显示图像的组件,继承自MaskableGraphic,可以显示任何类型的贴图大多应用于小地图或需要根据UV坐标实现动图的效果因为RawImage显示的图片类型是贴图类型,所以不能打图集,导致每一张RawImage渲染的图像都需要增加一个DrawCall。
2022-08-24 17:17:50
1541
原创 UGUI源码解析——MaskableGraphic
MaskableGraphic继承自Graphic类,IClippable、IMaskable、IMaterialModifier接口,继承自Graphic类表示它负责图像的显示与更新Image、RawImage、Text都继承自MaskableGraphic类MaskableGraphic继承自Graphic类,IClippable、IMaskable、IMaterialModifier接口,继承自Graphic类表示它负责图像的显示与更新Image、RawImage、Text都继承自Maskabl
2022-07-21 18:38:25
1798
原创 Unity中实现判断Missing还是Null
例如脚本丢失,贴图丢失,面板上会显示missing通过==null判断两者都会返回true,但在有些情况下,需要判断是Missing还是Null,通过try-catch可以判断出具体是Missing还是Null。
2022-07-19 15:11:04
2452
原创 UGUI源码解析——StencilMaterial
StencilMaterial是一个静态类,负责管理模板材质。维护了一个MatEntry类型的列表提供一个新的材质继承IClippable接口MaskableGraphic继承了IClippable,需要实现RecalculateClipping,Cull和SetClipRect方法。RecalculateClipping在MaskUtilities中被调用,Cull和SetClipRect在RectMask2D中被调用。下载,下载时选择"Builtinshaders"从。......
2022-07-19 10:40:18
1081
Q-Dir 是一款功能强大的Windows资源管理器
2023-09-05
弱网测试工具(apk、ipa)
2023-09-01
Mega-Fiers_3.48.unitypackage
2020-08-10
Low Poly Water GPU 2.02.unitypackage.zip
2020-07-31
ICSharpCode.SharpZipLib.dll.zip
2020-07-20
Excel.dll.zip
2020-07-20
Curved World v2019.5
2020-07-18
Obi-Fluid_new.unitypackage
2020-07-17
UniWebView_3_3.18.0.unitypackage
2020-06-12
NiceVibrations3.4.1.unitypackage
2020-06-03
RPG_Character_Mecanim_Animation_Pack.unitypackage
2020-04-26
vs代码主题:son-of-obsidian.zip
2020-04-08
Book Page Curl Pro.unitypackage
2020-04-01
Unique Lasers Vol 1 1.1.unitypackage
2020-03-26
UnbiasedTimeDll.unitypackage
2020-03-10
Unity调用手机相册.unitypackage
2020-03-10
IOS原生震动的依赖库.unitypackage
2020-03-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人