C#
江小白同学
这个作者很懒,什么都没留下…
展开
-
C# List<T>使用优化
List在我们的开发过程中经常会用到,但其实List的数据插入与删除操作是非常耗时的。关于删除的优化:我们可以先将List中需要删除的元素与最后一个元素置换位置,然后再调用删除操作测试代码如下...原创 2021-04-13 16:01:27 · 702 阅读 · 0 评论 -
C#等待多线程完成(await与async)
C#优雅的完成多线程回调(await与async)遇到的问题遇到的问题我在写一个关于从资源服下载网络资源的代码时遇到一个问题,即我们无法在一个方法块中完成我们想要做的所有逻辑,即请求下载,资源加载完成逻辑。我们通常的处理方式为:调用资源下载接口,传递资源加载成功回调方法当资源下载完成后,再去资源加载回调中去做资源处理。当我们完成一个需求,需要下载多个资源时,回调方法将会越来越多。我们的代码也将越来越复杂。将会产生如下的狗屎代码:我们不能够直接得到文件,只能在此处请求资源下载,然后再将逻辑放原创 2020-11-30 16:21:19 · 3917 阅读 · 0 评论 -
Unity让对象看向目标方向
/// <summary> /// 设置对象的前方向 /// </summary> /// <param name="vForward"></param> public void SetForward(Vector3 vForward) { Root.transform.forward = vForward; }/// <summary> /// 获得前置向量 //原创 2020-10-12 10:56:39 · 1942 阅读 · 0 评论 -
使用位存储地图信息,优化地图阻挡数据
地图阻挡数据优化思路写入操作读取操作思路一般我们的地图阻挡是否可以行走都以01进行区分,0为可走,1为阻挡。在地图编辑器中,我们会将地图信息存在地图资源文件mapBlock.dat文件中在最开始我们使用的是直接以int类型进行存储,十个场景的阻挡信息内存占用达到了15M。目前,我们已知int占用4个字节,一个字节占用8个位。我们0和1可以用一个位进行存储。那么,原本我们一个int使用了32个字节但是只存储了1个数据,内存占用达到15M,使用位进行存储后,我们可以压缩内存到0.46M。我们最小原创 2020-07-27 17:14:02 · 221 阅读 · 0 评论 -
设计模式【2】装饰模式
装饰模式思想一般实现给人类增加衣服的写法装饰模式实现思想在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责或者 处理那些可以撤销的职责的时候可以使用。在Unity中的组件就是使用了这种设计模式实现的组件扩展。一般实现给人类增加衣服的写法这样的实现方式当我要再加一顶帽子的时候必须要去修改Persion类,违背了开放-封闭原则public class Persion{ pub...原创 2019-08-12 11:42:15 · 188 阅读 · 0 评论 -
设计模式【1】简单工厂模式
简单工厂设计模式思想代码算法基类加法减法运行总结思想简单工厂设计模式就是为了能够根据不同情况动态获取到需要的类型在本次将会演示一个计算器的功能我们无法知道用户在程序中会输入哪些字符,是±*/或者其他,但是我们能确定的是用户需要通过输入将两个值进行运算,得到一个返回结果。那么在此处我们就可以创建一个算法基类,有设置值并计算后返回值的方法,值1与值2两变量。然后加减乘除类继承该类,在运行程...原创 2019-08-09 17:18:24 · 300 阅读 · 0 评论 -
隐藏界面最佳解决方案
隐藏界面最佳解决方案隐藏界面方案最优解决办法隐藏界面方案1.SetActive优点:方便快捷缺点:第一,Disable掉的物体上面的脚本也不运行了,而很多时候我们需要那个脚本运行。这样就不能用挂在自己身上脚本把自己SetActive(true)或者SetActive(false)。如果把自己的引用给另外一个脚本来对自己SetActive(true)或者SetActive(false),...原创 2019-05-25 23:42:26 · 787 阅读 · 0 评论 -
Unity三种加载方式详解
Unity三种加载方式详解前言有三种资源加载方式:资源的加载与卸载一般的加载流程:一般的释放流程:一个容易出错的例子:前言感谢转载自博客主周小菲的博客,原贴地址:http://www.cnblogs.com/zhoujiangyue/articles/7066070.html有三种资源加载方式:1.静态引用。具体操作:创建public变量,把文件挂到物体上,在Inspector里把相应资源...转载 2019-05-25 23:20:23 · 1785 阅读 · 0 评论 -
Unity内存优化 —— GC详解
Unity内存优化 —— GC详解前言简介Unity内存管理机制简介堆栈内存分配和回收机制堆内存分配和回收机制垃圾回收时的操作何时会触发垃圾回收GC操作带来的问题分析GC带来的问题分析堆内存的分配接下来用两个简单案例阐述值类型和引用类型的回收机制利用profiler window 来检测堆内存分配:降低GC的影响的方法减少内存垃圾的数量清除链表对象池定时执行GC操作前言感谢博客主提供思路,内容...转载 2019-05-25 17:25:25 · 2353 阅读 · 0 评论