记住你从unity 的面板看到的trsform 都是 local****的,比如localPosition~等等,
在用Prefab 创建一个对象时候要注意,先设定对象的parent然后再改变他的local****这样能避免一些错误。
如何知道Unity程序是否在运行中?
使用Application.isPlaying 来判断! 这样我们可以将在unity Editor中非运行时使用的代码和运行时候区分开来。
譬如之前说到的Material的颜色问题,如果我使用一个脚本来存储控制Material的颜色,如果直接在非运行态使用
MeshRenderer.material.color = _color; 的话将会将当前TextMesh 的material改为(instance)当前material实例,这样可以使用吗?当然是不行的,当我们运行程序时候就会发现TextMesh的material就会丢失。
所以可以知道的是这代码只能在运行态使用。
如果想在非运行态下面浏览颜色的状态,就得使用 GetComponent<MeshRenderer>().sharedMaterial.color = _color; 但是这段代码直接改变源material的颜色,然而这段代码如果在运行时候使用就会发生不可预测的错误(颜色不可控制)。
解决方法当然是在运行和非运行态使用不同的代码了!