在摄像机指向方向的垂直平面上移动控制参考

很多时候我们需要基于摄像机所正对的平面进行移动物体,比如,我需要在物体上方显示一个UI,这时候我们需要的其实并不是“物体的Y轴向的所谓的上方”,而是“当前观察的物体与摄像机观察方向垂直平面的上方”,哎说不清楚了,上代码吧。

这是一个在物体“上方”显示UI的做法参考:

voidUpdatePosition()
{
	if (obj)
	{
		Vector3 localToCam = Camera.main.transform.InverseTransformPoint(obj.bounds.center);
		localToCam += Vector3.up * obj.bounds.size.y;
		Vector3 worldPos = Camera.main.transform.TransformPoint(localToCam);
		Vector2 screenPos = RectTransformUtility.WorldToScreenPoint(Camera.main, worldPos);
		Vector2 anchoredPos;
		RectTransformUtility.ScreenPointToLocalPointInRectangle(parent, screenPos, null, out anchoredPos);
		rectTran.anchoredPosition = anchoredPos + Vector2.up * 20;
	}
}

猜你喜欢

转载自blog.csdn.net/ttod/article/details/129360045
今日推荐