kicc 发表于 2023-5-21 14:12

unity开发中一些常见不易发现的问题有哪些?

unity开发中一些常见不易发现的问题有哪些?

he59195 发表于 2023-5-21 14:12

① transform.Find("cccc").GetComponent<GameObject>();
这个写法无法赋值。
②素材包名称为中文时,是无法导入unity的。
③onClick.AddListener(delegate () { this不能在start,for循环时直接使用。会输出错误的按键信息。需要将其包装在一个函数中,在start中调用,才能正确输出按键信息。
例如:   
public void Anniukongzhi(int i)
    {
      quyuanniu = (Button)quyu.GetComponent<Button>();
      quyuanniu.onClick.AddListener(delegate () { this.Xuanzequyu(i); });
    }
特殊例子介绍:
在一些较为复杂的for循环中使用时,你可能会发现一个按钮第一次点击时是正常的,第二次点击时会变成点击一次触发两次,第三次点击时会变成点击一次触发三次,以此类推,问题的原因暂时未知,但尝试的解决方法时,每次使用时把按钮删除,再刷新一个新的按钮出来,这样每次点击就只触发一次了。
④WEBGL隐藏显示鼠标要使用
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
以下无效:
Cursor.visible = false;
Cursor.visible = true;
⑤当发现调用using System.Web.Services 出错时。
检查Assets\Plugins文件夹下,是否存在
System.Web.dll
System.Web.Services.dll
文件,从老的项目中找到该文件,复制过来,就可以正常调用该类了。
⑥打包较大的WebGL项目时,在打包设置中,价格WebGL Memory Size分配的大一些,否则可能在浏览器运行时,可能会提示内存不足。
⑦当character controller 的radius非常小时,当使用move移动时,会发现无法移动的情况,将Slope Limit/Step offset/Skin Width适当减小,问题解决,可以先把所有都调为0,看下是否移动了,确认是否受该问题影响。
⑧有时候,debug信息为空,不是没有获取到信息,当在debug的信息前面,加入一些字符后,debug信息才会正常显示出来,原因未知。
⑨有些特效在Scene视图可以看到,在Game视图看不到,可能是摄像机Clipping Planes设置的太小导致的,比如说小于0.1,设置大一些就顺利在Game视图显示出来了。
⑩出现报错:Step Offset must be less or equal to <scaled Height> + <scaled Radius> * 2
主要原因是带有character controller组件的物体的scale值太小了。可以根据需求,将带有character controller组件的物体scale值设置为1,其他物体等比减小,这样即解决了报错,其他效果也没有受到影响,同时step offset 值小于height。
⑪材质球中有一个emission属性,讲该属性的值添加超过1,显示颜色位置就会多出三个字母HDR,该物体的颜色会发出简单的类似荧光效果。
页: [1]
查看完整版本: unity开发中一些常见不易发现的问题有哪些?