制作自己的小游戏

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

  1. Inspector面板中Transform的位置信息显示的是localPosition,与父Transform的相对位置
  2. Inspector面板中RectTransform的位置信息显示的是anchoredPosition3D
    2.1 localPosition表示的是子物体的pivot相对于父物体的pivot的坐标
    2.2 anchoredPosition3D表示的是子物体的pivot相对于anchor的坐标,当anchor不是一个点时表示前3个元素(left,top,z)
    2.3 当子物体的anchor与父物体的pivot坐标重合时anchoredPosition3D与localPosition相等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值