unity3D如何计算角度偏移
2020-12-17 17:45:58 点击:
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使用C#脚本的几种读写TXT文本文件的方法 2020/12/18
- 下一篇:基于数据手套的虚拟人手运动建模系统的研究 2020/12/16


