示例:求从a到b的夹角
Vector3 a = new Vector3(2,2,0);
Vector3 b = new Vector3(-1,3,0);
float angle = Vector3.SignedAngle(b,a,Vector3.forward);
理解:将a向量逆时针旋转,到b向量所划过的角度
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Myjet : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Vector3 a = new Vector3(2, 2, 0);
Vector3 b = new Vector3(-1, 3, 0);
//float angle = Vector3.Angle(a, b); 没有正负号
float angle = Vector3.SignedAngle(b, a, Vector3.forward);
Debug.Log("夹角为:" + angle);
}
// Update is called once per frame
void Update()
{
}
}
求向量a与x轴正向之间的夹角
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Myjet : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Vector3 a = new Vector3(2, 2, 0);
Vector3 b = new Vector3(-1, 3, 0);
//float angle = Vector3.Angle(a, b); 没有正负号
float angle = Vector3.SignedAngle(a, Vector3.right, Vector3.forward);
//Vector3.right(表示x轴的向量)
Debug.Log("夹角为:" + angle);
}
// Update is called once per frame
void Update()
{
}
}
输出结果为:-45
(a逆时针旋转x轴)