在开发坦克英豪游戏时,坦克血条功能是将2D的图片,通过3D摄像头的设置,实现了悬浮效果。
///
/// 跟随物体:可以实现血条,悬浮抬头等等功能 ///
public class FlowTransform : MonoBehaviour { public Transform target; public Camera cam; public Vector3 offset; private RectTransform rt; void Start () { rt = GetComponent(); } void FixedUpdate () { if(target){ //世界转屏幕位置 Vector3 screenPoint = Camera.main.WorldToScreenPoint(new Vector3(target.position.x + offset.x, target.position.y + offset.y, target.position.z+offset.z)); //屏幕转世界位置(转为当前摄像头下的世界坐标) Vector3 uiPoint = cam.ScreenToWorldPoint(screenPoint); rt.position = uiPoint; //固定z轴 = 0,防止摄像头无法看见 Vector3 localPos = rt.localPosition; localPos.z = 0; rt.localPosition = localPos; } } }