- 博客(23)
- 收藏
- 关注
原创 Unity强制刷新UI的方法
LayoutRebuilder.ForceRebuildLayoutImmediate(RectTransform);
2021-01-27 15:53:13
3378
原创 主程的一些东西
多去看一些别人的框架 找一个合适自己项目的opengl 图形学 管线渲染 大致要知道东西是怎么显示出来的 learnopengl.com这个网站可以看看mvc代码方面 资源管理很重要美术资源 定规则之类人员的管理 如何分配任务 了解手下的能力等各种...
2020-09-10 16:33:05
124
原创 unity的一些坑
指5.6版本1.材质球A用B shader,引用了贴图M。在A换成C shader,引用贴图N之后,你会发现A居然直接引用了M跟N!编辑器神器的记忆功能会记住你材质球上的一些操作,从而导致你的assetbundle无比巨大。2.新建粒子会指定默认材质球,而默认材质球的shader是standerdShader,一个移动平台上从不使用的shader。一旦疏漏,assetbundle也会变大3.LOD Level如果在shader上没有实现,那么在给shader切换LOD的时候,在手机上会crash
2020-08-25 15:34:43
271
原创 TCP粘包、拆包
发生原因:写入的数据大于套接字缓冲区,就会发生拆包写入的数据小于套接字缓冲区,就会发生粘包不及时读取套接字缓冲区数据,也会发生粘包常规解决办法:使用带消息头的协议,消息头储存消息开始标志及长度,服务端解析,获取到头信息及长度开始读取设置定长消息,长度不足则补上固定字符...
2020-08-25 15:12:10
115
原创 unity的一些优化
1.Shader调试发现ShaderLab占用内存过高,有好几百兆,一般来说二十到五十兆就算顶天了。批量查询了Shader的变体数量,发现有个Shader有1W多个变体。发现原来是从网上找的Shader,能用就行。所以多了许多的冗余关键字。一般来说Shader中每多一个关键字, 变体数量就会翻倍,多一个翻一倍,指数级增长。解决这个问题后能有效降低ShaderLab的占用内存。另外一部分就是实际打包中的Shader变体数量,与Editor下预览的数量不一致,打包的数量多于Editor下,发现了很多
2020-08-25 14:47:17
294
原创 面试小结(三) 使用lua的一些注意事项及优化
1.#table 可以用来判断一个数组的长度,但需要注意的是,若table中包含nil,则不可使用。2.table.sort同理,需要排序的table必须是1到n连续的,中间不能有nil。3.尽量使用局部变量,函数function也是如此,因为在lua里函数也是一个变量。局部变量的存取会更快,且生命周期外就会被释放。4.避免使用table.insert()方法1:local a = {}local table_insert = table.insertfor i = 1,100 do
2020-08-25 14:36:18
304
原创 面试小结(二) lua与C#的交互及一些注意事项
简单的来说,lua调用C#的过程是lua-C-C#。C#调用lua的过程是C#-C-lua。注意事项:1.若要经常使用到如gameobj.transform.position = pos这种赋值时,尽量先用常量保存gameobj.transform。因为从lua中获取obj的transform属性便要消耗一定的性能。具体步骤如图:2.lua与C#传参、返回时,尽量少传Vector3/Quaternion等Unity值类型。例如void SetPos(GameObject obj, Vector3
2020-08-25 14:36:11
514
原创 面试小结(一) lua闭包
function f1() local i = 0 local function f2() i = i + 1 print(i) end return f2endg1 = f1()g1() --->1g1() --->2g1() --->3g2 = f1()g2() --->1g2() --->2g1() --->4去面试的时候,第一个问题就是lua的闭包是什么?我一脸懵逼,这是啥,不晓得啊。今天百度了好多,虽然.
2020-08-25 14:36:02
442
原创 Unity Shader学习笔记
Shader "Example/Diffuse Texture" { Properties { _MainTex ("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM #pragma surface surf Lambert struct Input { float2 uv_MainTe.
2020-08-25 14:35:36
130
原创 xxx.app: resource fork, Finder information, or similar detritus not allowed
resource fork, Finder information, or similar detritus not allowedCommand/usr/bin/codesign failed with exit code 1升级macOS Sierra XCode 8后引起的一个问题。主要是在替换Data中的assetbundle后出现。最初解决的办法是
2016-11-07 17:08:10
2966
原创 A星算法生成阻挡
A星的Width和Depth需手动调整(注意:Node Size需为2)场景里的有些美术没注意到的树需手动调整,Layer改成Treeterrain的tag和Layer需注意collision testing里的mask可以选择Blocks stone treesave & load 里Generate cache即可直接保存最后一行的Scan是用来预览的
2015-11-23 16:01:41
504
原创 unity 烘焙光源
windows→lightmapping把war_xx_scene下需要烘焙的物体全部选中(一般在war_03_00下的都是)选中直射光(烘焙时只可用一个光,关闭Player光源)点击BakeMode下选择SIngle Lightmaps,Resolution可选3或10调整Sky Light Color以及Edit→Render Settings里的Fog Color等 具
2015-11-23 15:53:55
565
原创 The file "MemoryStream" is corrupted! Remove it and launch unity again!
关于这个问题 找了好多地方在http://forum.unity3d.com/threads/unity-4-5-memory-stream-is-corrupted.248356/有个回答说The crashing levels had a Prefab with a Missing MonoBehavior. Removed the missing reference and it
2015-10-12 17:53:21
1533
原创 NGUI UIPanel在softClip下不起作用的问题
可能是因为Panel的Scale里x,y,z不一样,需要xyz都相同时,softClip才会起作用
2015-07-20 10:49:40
641
原创 侦听UIButton事件
EventDelegate.Add (Btn.onClick,delegate() { do sth.});或者用UIEventListenerUIEventListener.Get (Btn.gameObject).onPress = Press;UIEventListener.Get (Btn.gameObject).onPress += new UIEventList
2015-01-27 14:06:06
369
原创 NGUI动态添加UILabel
UILabel label = NGUITools.AddWidget(gameObject);label.text = "坦克";label.ambigiousFont = font;label.fontSize = 20;label.color = color;label.transform.localPosition = Vector3.zero;//这是设置描边label.e
2015-01-16 15:33:30
989
原创 C#找到子物体的父对象
this.transform.parent.gameObject可以用在点击按钮,然后关闭整个父物体另外,transform好像用处挺大的,以后多注意
2015-01-15 15:29:00
922
原创 关于没有实例对象的问题
因为动态加载的原因,很多时候,总是会碰到Object reference not set to an instance of an object的问题,即没有实例化对象我的解决方法是用Invoke函数,延时0.1秒就可以解决不知道有没有更好的方法可以解决这个问题,主要是懒得去想动作的先后,
2015-01-14 13:37:29
592
原创 Unity中遍历所有子物体
需要注意的是Unity好像并不支持GameObject的遍历,所以请使用Transformvoid SetRace(){foreach (Transform child in transform) {Debug.Log("XXX");}}
2015-01-14 13:14:07
2721
原创 Unity中遍历子物体
void SetChild{ foreach(Transform child in transform) Debug.Log("XXX");}需要注意的是Unity好像并不支持GameObject的遍历,所以请使用Transform
2015-01-14 13:10:00
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人