孙广东 2015.5.26
转载请注明出处:http://blog.csdn.net/u010019717
我们 游戏完全使用UGUI来工作,所以游戏中的很多元素都是UGUI的 Game Canvas画布设置为;World Space , 主要也是为了以后一下牛叉的效果
还有一个UI Canvas画布设置为;Screen Space - Overlay 就是这些元素会在最前方,在屏幕上的。
还有一组是:Spines Layer, 主要是放着spine制作的角色
2种解决方案:
第一种是 为角色创建子对象了类型是Canvas画布,Unity的官方事例是这么做的,可以自己去看看。这样在Hierarchy上是有上下级的层级关系的。
这种的话,Canvas的类型最简单是设置为:Screen Space - Overlay
第二种呢,其实也很简单,就是我得到角色的位置position, 然后转换为屏幕坐标系,然后在转换为UGUI所在画布和相机的坐标系即可,得到了这个就赋值给UI即可了。但是这样在Hierarchy上是没有上下级的层级关系的。一个属于Game Canvas画布,一个在Spines Layer中,但是角色会有UI的引用。
Vector3 first = ExploreBattleManager.Instance.MainCamera.GetComponent<Camera>().WorldToScreen