首页 > 代码库 > 如何制作一个2D的lookat
如何制作一个2D的lookat
如果直接使用unity自带的API的话,transform.lookat会导致2D物体的X与Y方向的rotation改变(也就是2D物体竖起来了,在canvas里根本都看不到了)
我们需要的是物体在Z轴方向上进行旋转,也就是Z轴方向指向目标物体。
C#版本:
-
public Transform target; //目标物体的transform
-
void Update ()
-
{
-
float angle = 0;
-
-
Vector3 relative = transform.InverseTransformPoint(target.position);
-
angle = Mathf.Atan2(relative.x, relative.y)*Mathf.Rad2Deg;//这里是计算xy轴商的正切值(tan)和弧度转换的值(360/2π) This is equal to 360 / (PI * 2).
-
transform.Rotate(0,0, -angle); //如果想要图片转180度就在后面+180
-
}
XLua版本:(red是指针自己,green是要指向的目标的位置)
function update()
angle = 0;
relative = Red.transform:InverseTransformPoint(Green.transform.position);
angle = CS.UnityEngine.Mathf.Atan2(relative.x, relative.y)*CS.UnityEngine.Mathf.Rad2Deg;
Red.transform:Rotate(0,0, -angle+180);
end
如何制作一个2D的lookat
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。