![](/img/trans.png)
[英]How can I make an object to face the direction it's moving like the birds at angry birds 2?
[英]How do I make a 2D object face the direction it is moving like drifting
如上图所示,我有两个GameObject
:汽车和圆圈。 汽车跟随圆圈,圆圈随光标移动。 目前,我的汽车正在远处追随圆。 当圆沿x轴移动时,我想像漂移一样旋转汽车。
这是我的汽车跟随脚本:
public class Follow : MonoBehaviour
{
public Transform leader;
public float followSharpness = 0.1f;
Vector3 _followOffset;
void Start()
{
// Cache the initial offset at time of load/spawn:
_followOffset = transform.position - leader.position;
}
void LateUpdate()
{
// Apply that offset to get a target position.
Vector3 targetPosition = leader.position + _followOffset;
//GetComponent<Rigidbody2D>().rotation = 1.5f;
// Keep our y position unchanged.
//targetPosition.y = transform.position.y;
// Smooth follow.
transform.position += (targetPosition - transform.position) * followSharpness;
}
}
您可以尝试使用Transform.LookAt :
void LateUpdate()
{
Vector3 targetPosition = leader.position + _followOffset;
transform.position += (targetPosition - transform.position) * followSharpness;
transform.LookAt(leader);
}
免责声明:我目前无法测试此代码是否有效,您必须尝试一下它,看看它是否产生期望的结果。
因此,根据您所描述的,是要让汽车始终面向光标,因此它始终“看着”光标,这是您可以执行的操作:
Vector3 diff = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
diff.Normalize();
float rot_z = Mathf.Atan2(diff.y, diff.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.Euler(0f, 0f, rot_z - 90);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.