Math 向量基于某一坐标轴旋转固定角度

效果

QQ20171228-105907-HD

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class TestCode : MonoBehaviour
{
public Transform target;
public Transform chaser;
public GameObject destination;

private void Update()
{
var dir = (target.position - chaser.position).normalized;
var fleeDir = Quaternion.AngleAxis(10f, Vector3.up) * dir;
var desPosLocal = fleeDir * 3f;
destination.transform.position = target.transform.TransformPoint(desPosLocal);

//画Flee方向
Debug.DrawRay(target.position, dir * 3f, Color.green);

Debug.DrawRay(target.position, fleeDir * 3f, Color.red);
}
}

分析

dir首先取得的是逃离的方向(目标的局部坐标系)

1
旋转后向量 = Quaternion.AngleAxis(旋转角度, 坐标轴) * 原向量

该公式可以把某一个向量基于某一个坐标轴旋转指定的角度(欧拉角)

1
target.transform.TransformPoint(desPosLocal);

将局部坐标转换为世界坐标

坚持原创技术分享,您的支持将鼓励我继续创作!