引言
我们在制作游戏的时候,经常用到画布Canvas。比如我最近正在制作的FPS游戏,需要显示敌人的血条,这就需要显示UI了,但是血条UI怎么显示在敌人的正上方呢,因为做之前我不知道有啥好的方法可以直接把UI和游戏物体给连接起来,让他们互相约束(本人Unity菜鸟,轻喷)。
方法
第一种想到的方法就是在根目录下建一个画布,然后给一个Image,调整Image的位置和游戏物体联系起来。做起来效果还可以,但是代码麻烦了点,需要改变位置,改变旋转,改变缩放,做的更细致甚至要自己写遮挡的逻辑。(比如游戏物体走到某个建筑物后面,此时血条应该是看不见的)。
更好的解决办法
但是最近我发现游戏物体居然也可以加Canvas,我还以为只能在根目录下创建(还是我太菜了emmm)。那这样的话就很好办了,我就先创建一个空物体,然后把游戏对象(比如说一个简单的Cube)加入到它的子物体,然后在空物体下直接新建一个Canvas,最后最重要的一步来了,下方一定要改成WorldSpace。
然后我在该Canvas下添加一个Text,改变Canvas和Text的位置,效果如下。
那么我们的需求已经实现了,至此完毕。