Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量
更新時間:2020年01月19日 10:52:52 作者:little_two_two
這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Unity實現(xiàn)繞任意軸任意角度旋轉(zhuǎn)向量的具體代碼,供大家參考,具體內(nèi)容如下
游戲中有一需求,就是一個矩形或者Cube繞著某一點旋轉(zhuǎn)任意角度,現(xiàn)在給出下面算法。
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 = new Vector3(1f, 0f, 3f);
v2 = new Vector3(4f, 0f, 6f);
v3 = new Vector3(6f, 0f, 4f);
vCenter = new Vector3(2f, 0f, 2f);
}
// Use this for initialization
void Update ()
{
line1.SetVertexCount(5);
line1.SetPosition(0,v0);
line1.SetPosition(1,v1);
line1.SetPosition(2,v2);
line1.SetPosition(3,v3);
line1.SetPosition(4,v0);
line2.SetVertexCount(5);
Vector3 v01 = MathUtils.RotateRound(v0, vCenter, Vector3.up, angle);
Vector3 v11 = MathUtils.RotateRound(v1, vCenter, Vector3.up, angle);
Vector3 v21 = MathUtils.RotateRound(v2, vCenter, Vector3.up, angle);
Vector3 v31 = MathUtils.RotateRound(v3, vCenter, Vector3.up, angle);
Vector3 v41 = MathUtils.RotateRound(v4, vCenter, Vector3.up, angle);
line2.SetPosition(0, v01);
line2.SetPosition(1, v11);
line2.SetPosition(2, v21);
line2.SetPosition(3, v31);
line2.SetPosition(4, v01);
}
}
效果圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#獲取HTML文本的第一張圖片與截取內(nèi)容摘要示例代碼
在日常web開發(fā)的時候,經(jīng)常會遇到需要獲取保存的HTML文本中的第一張圖片,并且截取內(nèi)容摘要的效果,例如織夢的后臺添加完詳細(xì)內(nèi)容后就是自動讀取內(nèi)容摘要,并保存第一張圖片為縮略圖,那么這篇文章跟大家分享下利用C#如何實現(xiàn),感興趣的朋友們下面來一起看看吧。2016-10-10
C# 中 System.Index 結(jié)構(gòu)體和 Hat 運算符(^)的使用示例
這篇文章主要介紹了C# 中 System.Index 結(jié)構(gòu)體和 Hat 運算符(^)的使用示例,幫助大家更好的理解和使用C#,感興趣的朋友可以了解下2020-09-09
C#采用HttpWebRequest實現(xiàn)保持會話上傳文件到HTTP的方法
這篇文章主要介紹了C#采用HttpWebRequest實現(xiàn)保持會話上傳文件到HTTP的方法,很實用的功能,需要的朋友可以參考下2014-08-08

