unity3d角度偏移计算方法
2019/4/9 点击:
using UnityEngine;
using System.Collections;
public class UserAnimatorMove : MonoBehaviour
{
private Vector3 oldVector3;
private Vector3 newVector3;
private Quaternion oldQuaternion;
private Vector3 newRotatinForward;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.F1))
{
oldVector3 = this.transform.position;
oldQuaternion = this.transform.rotation;
}
if (Input.GetKeyDown(KeyCode.F2))
{
StartCoroutine(MovePoint());
}
}
private IEnumerator MovePoint()
{
// oldVector3 = this.transform.position;
// oldQuaternion = this.transform.rotation;
yield return new WaitForSeconds(0.2f);
newVector3 = this.transform.position;
newRotatinForward = this.transform.forward;
float lenth = Vector3.Distance(oldVector3, newVector3);
Vector3 velocity = Quaternion.Inverse(oldQuaternion) * newRotatinForward;
float angle = Mathf.Atan2(velocity.x, velocity.z) * 180.0f / 3.14159f;
Debug.Log(angle);//新的方向相对旧的方向的偏转角度
}
}
- 上一篇:unity3d物体移动的方法 2019/4/9
- 下一篇:UNITY3D两个物体相对位置、角度、相对速度方向 2019/4/9
