【方案一】
把Canvas设置成Worldspace模式,放到角色下,变成子对象,自然就跟着角色移动了。
问题:角色旋转,血条也会跟着旋转,即便通过Update函数,修正rotation,强行等于Camera的rotation,也会出现摆动的现象。
教程地址:http://www.jianshu.com/p/a9fd13594f18
【方案二】
把角色的Position投射到屏幕上,转化为屏幕坐标,再通过计算角色到Camera的距离,算出比例系数,再放大缩小血条。
问题:血条会把别的角色挡住。
教程地址:http://www.xuanyusong.com/archives/2644
【方案三】
设置Canvas为相机模式,计算角色屏幕坐标,再用角色屏幕坐标计算血条世界坐标……
问题:转换函数出错。很明显作者码代码码晕了,直接赋值就好了……= _ = 由此得出【方案四】
教程地址:http://lib.csdn.net/article/unity3d/38157
【方案四】
设置Canvas为相机模式,直接把角色的Position赋值给血条的Position:
void Update()
{
HP.transform.position = role.transform.position;
}
方案四目前暂无问题