赞
踩
效果如图 使物体Y轴始终朝向目标物体 用于实现2D版子弹跟踪功能
实现方法:
public GameObject target;
void Update()
{
transform.eulerAngles = LookTargetAngle(transform, target.transform.position);
}
Vector3 LookTargetAngle(Transform playerTrans, Vector3 targetPos)
{
float dx = targetPos.x - playerTrans.transform.position.x;
float dy = targetPos.y - playerTrans.transform.position.y;
float rotationZ = Mathf.Atan2(dy, dx) * 180 / Mathf.PI;
//得到最终的角度并且确保在 [0, 360) 这个区间内
rotationZ -= 90;
//获取增加的角度
float originRotationZ = playerTrans.eulerAngles.z;
float addRotationZ = rotationZ - originRotationZ;
//超过 180 度需要修改为负方向的角度
if (addRotationZ > 180)
{
addRotationZ -= 360;
}
//应用旋转
return new Vector3(0, 0, playerTrans.eulerAngles.z + addRotationZ);
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。