今天在做一个通用的UI顶部含有返回和资源显示区域,暂定叫它资源条吧。需求是整个游戏内只存在一个顶部资源栏。
具体做法是设置一个常驻游戏物体,该物体下保存一个顶部资源栏,就叫它小池子吧。当打开一个UI需要显示顶部资源栏时,获取小池子下的资源条,获取资源条后将资源条的Parent设置为请求UI的某个节点,关闭时先把资源条还回管理器中。还的时候先把资源条的Parent设置成小池子,然后做UI关闭的操作。
但就在这样设置SetParent时出现了UI错乱的情况,网上翻了翻资料,SetParent(Transform parent, bool worldPositionStays)worldPositionStays的大概意思是在设置父容器是是否保留之前的位置、旋转量、缩放值等信息,按我的理解就是如果是设置为true那么该物体就与之前的的父物体保留了位置等相关信息,那重新设置必然会导致位置错误。对于UI来说设置成false,一切搞定!