本文实例为大家分享了Unity实现绕任意轴任意角度旋转向量的具体代码,供大家参考,具体内容如下
游戏中有一需求,就是一个矩形或者Cube绕着某一点旋转任意角度,现在给出下面算法。
public static Vector3 RotateRound(Vector3 position, Vector3 center, Vector3 axis, float angle)
{
Vector3 point = Quaternion.AngleAxis(angle, axis) * (position - center);
Vector3 resultVec3 = center + point;
return resultVec3;
}
测试用例
using UnityEngine;
using System.Collections;
public class RotateTest : MonoBehaviour
{
public LineRenderer line1;
public LineRenderer line2;
public float angle = 30f;
private Vector3 v0;
private Vector3 v1;
private Vector3 v2;
private Vector3 v3;
private Vector3 v4;
private Vector3 vCenter;
void Start()
{
v0 = new Vector3(3f,0f,1f);
v1 = n