- 博客(24)
- 收藏
- 关注
原创 工作个人理解、记录、导师指导
1、对于开发,要自上而下分析eg:做一个商店界面,顺序:先分析当前大界面需要的东西,拆分数据、显示(其数据包含不同标签页的List数据)进而每一个标签的内容,继而分析每个Item的内容(如每个item的price、icon、name等设计成一个数据)2、要注重资源和代码的分离 === 动态地去将资源和代码绑定ps:资源就是资源,代码就是代码(避免直接一个prefab上挂着脚本这种...
2018-11-29 19:23:16
876
原创 Unity中的GC及其优化
=====堆内存分配时候,unity做了什么:1.首先,Unity检查堆上是否有足够的空闲内存,如果有,则该变量的内存被分配;2.如果没有,Unity触发GC试图释放未使用的堆内存,这个操作可能很慢。如果GC之后堆内存足够,则该变量的内存被分配;3.如果GC之后堆上还是没有足够的空闲内存,Unity将向操作系统申请更多内存以扩大堆大小。这个操作可能很慢。之后该变量的内存被分配所以,...
2018-09-16 15:14:43
877
原创 DOTween和iTween比较
1、DOTween更加人性化比如:想以恒定的速度移动到某个地方,并且要指定移动方式、移动完成时要回调函数iTween调用方式复杂:(需要自己去拼接一个Hashtable,需要记住各种字符串)而DOTween直接点调用就可以了(),可以使用链式编程2、DOTween执行效率更高,性能好因为iTween大量使用sendmessage消息传递机制(而sendmsg使用...
2018-09-13 16:04:15
9499
原创 对象池
几个重要类:ObjectPool、ObjectPoolList、PoolMgrObjectPool: 字段:维护池子的名字、池子内物体的预设、池子最大数量、池子内所有对象的集合 方法:从池子获取游戏对象、隐藏指定的游戏对象、隐藏所有的游戏对象 ObjectPoolList:所...
2018-09-13 11:33:46
500
原创 FSM状态机
StateBase类、StateTemplate类、Idel类、PlayerCtrl类public class StateBase : MonoBehaviour { //状态的ID public int ID { get;set;} //状态机 public StateMachine machine; public StateBase(int id...
2018-06-14 23:07:26
331
原创 DoTween插件学习
命名空间:using DG.Tweening1、对变量进行动画(Vector、float、int等都可以,可通过这种方式作用于UI、物体的移动以及color的渐变 ) 2、动画的快捷播放 动画倒放: 上边会有个不好的地方:播放几次动画就会产生多少动画对象,所以把这段代码放到St...
2018-06-14 21:00:53
865
原创 AssetBundle相关
====>AssetBundle打包:设置好AssetBundle包名后,利用BuildPipeline.BuildAssetBundles ("Path");进行打包。该函数有三参和四参的,三参如下: outputPath : 导出路径 BuildAssetBundleOptions : 导出选项枚举,内容在后面。 其中包含:是否压缩,是否使用块压缩即LZ4压缩等 BuildTa...
2018-06-12 18:47:51
243
原创 UI框架
BaseUIForms类: 四种状态:Display()--显示方法、Hiding()--隐藏、Freeze()--如果是弹出类型,则栈中上一个元素冻结也就是不能点了、ReDisplay()--如果是弹出类型,则栈中元素重新显示窗体类型:Normal、Fixed(如主城界面中的一些诸如:商城、工会、任务、人物信息等面板)、PopUpUIMgr类: 维护各节点:根节点、N...
2018-06-12 13:03:39
926
原创 Unity资源管理
资源管理API整理 下载AB包:AssetBundle.LoadFromFile及其Async异步 、AssetBundle.LoadFromMemory及其异步加载AB包中资源:AssetBundle.LoadAsset以及AssetBundle.LoadAllAsset卸载: Resources.UnloadAsset(Object assetToUnload)卸载指定的asset ...
2018-06-11 23:24:13
286
原创 Lua基础知识相关(自用)
1、闭合函数:一个函数包含另一个函数的的调用 内部函数使用外部函数中的变量(使外部变量生命周期延长了)ps:C#中闭合函数返回的是一个委托 Lua中返回的是一个函数 多次调用: 2、尾调用:一个函数的调用时另一个函数的最后一个动作 3、迭代器(借助尾调用实现的) 4、协同程序:和协程有关的方法都放在cor...
2018-06-11 18:42:37
279
原创 C#基础知识
本文只记录零散的知识点,并不是系统的学习笔记 % 抽象类、抽象方法: 抽象类不能实例化,只能被继承(可以声明,但是new实例化必须子类完成)。抽象类可以包含非抽象方法和抽象方法。 抽象方法就是只有函数定义没有函数体(显然,抽象函数本身也是虚拟的Virtual方法)。且必须声明在抽象类中。 子类可以不实现抽象父类的非抽象方法。 子类如...
2018-06-10 14:10:13
305
原创 二叉树
二叉树设置: 二叉树创建: 二叉树遍历:(根据访问根节点的时机,分为三种遍历方式) 先序遍历:根左右(访问根节点在最前边) 中序遍历:左根右(访问根节点在中间) 后序遍历:左右根(访问根节点在最后边)查找特定节点: 查找特定节点的父节点: ...
2018-06-06 17:08:16
212
原创 排序
选择排序(直接排序): 使用一个元素与其他元素挨个进行比较,符合条件就交换 分别把最大值放在第一位置,老二放在第二位置,...n个数,需要重复n-1次(所以最后那个外层循环 j 从0到length-1)冒泡排序:(要求从小到大排序)使用相邻两个元素挨个比较一次,符合条件就交换...
2018-06-04 20:57:35
184
原创 NGUI和UGUI性能优化比较
元素更新方式 DrawCall合并规则 网格更新机制 堆内存分配元素更新方式 & 对制作的影响(ps:改变缩放和颜色也算动态) —“动态”元素尽量少用Outline、Tiled Sprite —尽量减少“动态”长文本NGUI的元素更新: UIPanel.LateUpdate采用轮询的方式,每帧都会执行,并...
2018-06-03 00:02:52
4034
原创 UGUI性能优化
①Cavas的Render Mode是Overlay模式时,永远覆盖在其他物体之上,不受摄像机depth影响 ②Cavas的Render Mode都是Screen Space-Camera时的渲染顺序: 依次由选取的摄像机Render Camera的Depth值、Cavas的Sorting Layer先后顺序(可上下拖动调节顺序)、Order in Layer值决定 ...
2018-06-02 19:15:38
9303
3
原创 NGUI开发优化技巧
屏幕自适应 参考链接 屏幕适配参考& Scaling Style(UIRoot上) 主要用Constrained设置(content width和content height)进行整体布局------Constrained On Mobiles(NGUI做好了不同的适配) 或者如果是选取了Flexiable且横屏状态下,就需要动态改变适配的高度(一般是PC端)...
2018-06-01 14:45:50
1006
原创 Unity性能优化总结
阴影1、实时阴影,可以在Quality Settings中调整阴影距离(Shadow Distance)确保距离很远的对象没有阴影2、尽量避免使用实时阴影,转而用假阴影代替(如放置黑灰色面片)。静态批处理对于游戏中确定不动的物体(eg:石头,一些房子等场景物体),将这些对象都设置为Static的图片压缩如ios中UI元素最佳选择是RGB Compressed PVRTC 2 bits 安卓...
2018-06-01 10:47:44
596
原创 Unity对接Android SDK
Unity和安卓的交互: //Unity访问安卓非静态方法 public void CallAndroid() { AndroidJavaClass unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject activity = unityCl...
2018-05-31 10:57:08
1286
转载 Lua中点和冒号的区别
定义:Lua中的点、冒号与self,它们之间的关系主要体现在函数的定义与调用上,Lua在函数定义时可以用点也可以用冒号,如:1 function mytable.fun(p)2 return p3 end4 5 function mytable:fun(p)6 return p7 end用冒号定义的函数有个特别的地方是它内部有个self表示自身可以直接访问(虽然self...
2018-05-29 20:48:10
1088
原创 ulua框架部分知识
1、需要动态更新的资源放在StreamingAssets下,在游戏下载时,会把这里边的内容拷贝一份到对应平台的相应目录下,里边包含files文件等,files文件里有AssetBundle及其对应的MD5码。 服务器会比对客户端的MD5码,如果不一致就更新对应的AB包。2、框架中的wrap文件,是对unity常用类的转化,会把它们注册进Lua环境中。3、Lua、LuaState、LuaScrip...
2018-05-29 14:54:28
295
原创 在Lua中访问C#中的属性和方法的特殊情况---有out和ref关键字的情况
当C#的函数中有out和ref参数时,out参数、ref参数会和函数的返回值一起返回,且Lua中调用的时候out参数不需要传入C#中:namespace testLuaInterface{ class Person { // public string name = "little ai"; //测试out参数 public...
2018-05-28 22:00:05
1895
原创 Lua和C#交互
Lua 和 C#是通过一个开源技术LuaInterface进行交互的。LuaInterface包含两个核心类库:LuaInterface.dll 和 Luanet.dllC#访问Lua的代码时:---依赖LuaInterface.dll 需要引入这两个类库(在C#项目中引用),然后创建Lua解释器:Lua lua = new Lua( ); 有两个方法可以访问->...
2018-05-28 21:20:34
985
原创 Lua中ipairs和pairs的区别
①ipairs只能遍历key为整数的值,且遇到nil就退出t = {[1] = 99,name = "little",[4] = 0,[5] = 55,[3] = "ttt"}for k,v in ipairs (t) do print(k,v)end输出:1 99 --因为 [2] = nil,所以直接退出了t = {[1] = 99, "b",[4] = 0,[6] = 55,[3] = ...
2018-05-28 19:36:14
2139
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人