Unity踩坑记..

来源:互联网 发布:如何关闭netstat 端口 编辑:程序博客网 时间:2024/05/22 17:18

这一系列用以记录我遇到的奇怪问题。。


问题1 camera preview 和 Game显示的不一样

描述

解决方案: 你可能不小心放了两个camera,删掉另外一个就可以。


问题2 Terrain中的Place Trees无法使用,鼠标点了没反应,点击Mass Place Trees也没反应。

解决方案:Terrain Settings 中 Tree & Detail Objects 勾选Draw
这里写图片描述


问题3 animation clip 预览没有人物

这里写图片描述

解决方案: 把对应的人物模型拖到预览中即可
这里写图片描述


问题4 没有勾选Is Trigger的Collider也能触发OnTriggerEnter()

MonoBehaviour.OnTriggerEnter(Collider other)

官方文档对这个函数的解释是OnTriggerEnter is called when the Collider other enters the trigger,因为参数是Collider,下意识以为调用OnTriggerEnter的必然是Trigger。那么正常的用法应该是设置一个Collider为Tirgger然后调用这个函数。

但看了几个Youtube上面的教程,都是一个Collider没有勾选Is Trigger,但是在这个Collider中调用OnTriggerEnter,然后当它进入一个Trigger的时候,函数会触发。

重新理解一下这个函数,Trigger也是Collider,参数other可以勾选Is Trigger也可以不勾选。


问题5 拖拽gameobject A到另一个gameobject B下,Unity会按比例改变A的scale

比如 A的scale 大小是4 4 4, B的scale大小是8 8 8,把A拖到B下面作为B的子节点会导致A的Scale变为0.5 0.5 0.5。

一般来说这个不会有什么问题。。 但有时候如果觉得大小什么的不对,可以往这方面想想。


问题6 使用ThirdPersonCharacter 人物移动时感觉卡顿

解决方案:稍微提高Ground Check Distance的值, 卡顿主要是由于ThirdPersonCharacter脚本中使用RayCast检测碰撞来检测是否在地面,Ground Check Distance就是maxDistance的参数,太低有时会检测不到地面,动画在浮空和地面来回切换导致人物卡顿。

问题7 使用ThirdPersonCharacter人物掉落在Trigger上也会稍微停滞,而不能流畅地穿过

解决方案:修改ThirdPersonCharater中CheckGroundStatus函数里面调用的Physics.Raycast

Physics.Raycast(transform.position + (Vector3.up * 0.1f), Vector3.down, out hitInfo, m_GroundCheckDistance,1,QueryTriggerInteraction.Ignore)

使其忽略Trigger的碰撞。


问题8 使用SceneManager.LoadScene()之后重新加载场景后光照效果发生了变化。

解决方案:这个不影响Build的效果,可以在Window->Lighting->setting 取消勾选Auto Generate
这里写图片描述

http://answers.unity3d.com/questions/919940/applicationloadlevel-changes-lighting-for-some-rea.html

0 0