效果如图 使物体Y轴始终朝向目标物体 用于实现2D版子弹跟踪功能
实现方法:
public Transform _collider_2; void Update() { transform.eulerAngles = LookTargetAngle(transform.position,_collider_2.position); } Vector3 LookTargetAngle(Vector3 playerPos, Vector3 targetPos) { float dx = targetPos.x - playerPos.x; float dy = targetPos.y - playerPos.y; float rotationZ = Mathf.Atan2(dy, dx) * 180 / Mathf.PI; //得到最终的角度并且确保在 [0, 360) 这个区间内 rotationZ -= 90; //获取增加的角度 float originRotationZ = this.transform.eulerAngles.z; float addRotationZ = rotationZ - originRotationZ; //超过 180 度需要修改为负方向的角度 if (addRotationZ > 180) { addRotationZ -= 360; } //应用旋转 return new Vector3(0, 0, this.transform.eulerAngles.z + addRotationZ); }借鉴自: http://www.bubuko.com/infodetail-1243233.html
新闻热点
疑难解答