- 博客(6)
- 收藏
- 关注
原创 unity降低GC和DC的几个点
降低GC:1.使用对象池2.string和StringBuilder的使用3.减少装箱操作4.关键帧限制协程调用(startcoroutine()实际上是new一个对象)5.用for代替foreach(5.5版本以前有装箱操作,会在堆内存上产生一个system.object)6.struct中不要有引用类型变量(struct是值类型,而如果struct中有引用类型的变量,GC会检查整个struct)【增加GC的方式是让它检查不必检查的对象】7.主动调用GC补充:unity
2021-10-28 21:08:28
3504
翻译 unity自定义timeline轨道
我们需要三个脚本组件,track,clip,data。先从data脚本开始说起。这个脚本继承PlayableBehaviour。里面的内容是当时间线运行到改片段时,我们想要这个片段做什么。ProcessFram函数是每帧执行的,相当于monobehaviour里面的update函数。(其他详细的函数查阅官方文档)第二个脚本是clip,继承PlayableAsset,必须实现CreatePlayable抽象类。这里的CreatePlayable是一个静态的工厂方法观...
2021-10-28 20:46:44
689
原创 为什么string是引用类型
在c#中分为值类型和引用类型,值类型为int ,float ,bool ,char ,struct等简单数据类型,引用类型有stirng,class。然而string的身为引用类型却表现得与值类型十分相同。为什么string为引用类型呢?首先明白string指向常量空间的地址。如果我们有一个字符串 string a="abcde";我们用a给其他字符串赋值:string b=a,c=a...
2019-11-21 16:19:03
3415
原创 值类型和引用类型
值类型:(int,float,bool,struct(结构体))是在栈(stack)中分配内存,只能初始化之后才能使用,不能为null,由系统自动分配和释放。栈中一般存放函数的参数值,局部变量等。如果栈中空间大于申请的空间,则系统就为它分配内存,否则提示栈溢出。引用类型:(class,string)是在堆(heap)中分配内存,初始化默认为null。由程序员自动申请空间和释放。malloc...
2019-10-31 10:35:08
143
翻译 dijkstra算法
有向非负带权如图所示:为了更加方便理解dijkstra算法,我们先把所有的有向边全部删掉,从源点开始,红色表示未被访问的点,白色表示已经被访问过的点,设v0到v0的路径为0,v0到所有点的距离为无穷大如下图所示:从v0开始,我们将与v0相连的边全找出来,如下图所示,找到所有边中权值最小的边,并且,将与该条边相连的点标记为已经访问,此时,该条边就是v0到v1的最短路径。(可证明,若改条边...
2019-09-01 18:33:45
4362
原创 C++类模板的使用
template<class T>是声明一个虚拟类型名为T的类模板普通类定义对象的方法是Cmp cmp1(1,2);相比较之下,类模板需要指出给对象定义的类型Cmp<int> cmp1(1,2);因为Cmp是类模板名,而不是一个具体的类,类模板体中的类型T不是一个实际的类型,是一个虚拟的类型,无法用它去定义对象,必须用实际的类型名去代替虚拟的类型名。...
2019-03-08 12:23:08
1288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人