2021.6.30
[Button OnClick处添加脚本后 找不到自己写的方法][https://blog.csdn.net/m0_37763682/article/details/1067979]
2021.7.1
问题
- unity添加sprite后被canvas遮挡无法显示
改变3D坐标能修改sprite之间的层次问题,但是仍无法在canvas上显示
修改canvas中的render mode为World Space可以将canvas和sprite的显示层次关系用三维坐标z大小关系表示,但仍这不符合我们预期,我们希望相机视野定格在画布上,Screen Space-Camera可以满足要求。
image只能在画布(canvas)下显示
总结
该问题有点蠢,其实就是canvas的render mode不同模式的差异。
https://docs.unity.cn/cn/current/Manual/class-Canvas.html
其中介绍了canvas不同render mode的差异
Unity中Awake和Start的区别
Awake在脚本被实例化的时候就会被调用(不管脚本是不是enable的),而且在脚本的生命周期中只会被调用一次。Awake是在所有对象实例化之后,所以我们可以放心大胆地去使用诸如GmeObject.Fine之类的方法来在Awake中给各个组件之间添加引用 关系。Awake会在所有对象的Start之前调用,但是注意不同对象之间的Awake顺序是不得而知的。
Start是在对象被第一次enable之后,在Update之前调用的,Start在脚本的生命周期中也只可能被调用一次。Start可能不会被立刻调用,比如我们之前没有让其enable,当脚本被enable时,Start才会被调用。
官方文档的建议是:尽量在Awake函数中进行初始化操作,除非有A依赖B,B必须在A实例化之前完成初始化,那么A在Start,B放在Awake中可以保证A在B之后才被初始化(不过个人感觉还是应该尽量都在Awake中进行对象间的引用,然后手动调用Init函数进行初始化,这样可以自己控制初始化的顺序)。
localPosition、anchoredPosition3D、Position
- Inspector面板中Transform的位置信息显示的是localPosition,与父Transform的相对位置
- Inspector面板中RectTransform的位置信息显示的是anchoredPosition3D
2.1 localPosition表示的是子物体的pivot相对于父物体的pivot的坐标
2.2 anchoredPosition3D表示的是子物体的pivot相对于anchor的坐标,当anchor不是一个点时表示前3个元素(left,top,z)
2.3 当子物体的anchor与父物体的pivot坐标重合时anchoredPosition3D与localPosition相等