目錄
?
1.旋轉(zhuǎn)的三種方式
2.為Transform.rotation賦值
?3.使用Transform.Rotate函數(shù)
4.?使用Quaternion.RotateTowards函數(shù)
?5.使用Transform.LookAt函數(shù)
6.?Transform.RotateAround 圍繞旋轉(zhuǎn)
?7.Quaternion.LookRotation 注視旋轉(zhuǎn)
?8.Quaternion.FromToRotation 從from到to旋轉(zhuǎn)
?9.坑
?
1.旋轉(zhuǎn)的三種方式
1、矩陣旋轉(zhuǎn) 2、歐拉旋轉(zhuǎn) 會造成萬向節(jié)鎖問題 3、四元數(shù)旋轉(zhuǎn) 可避免萬向節(jié)鎖現(xiàn)象
2.為Transform.rotation賦值
繞y軸旋轉(zhuǎn)90度
transform.rotation = Quaternion.Euler(0, 90, 0)
?3.使用Transform.Rotate函數(shù)
transform.Rotate(0,90,0);
4.?使用Quaternion.RotateTowards函數(shù)
Quaternion targetRotation = Quaternion.Euler(0, 90, 0);
float rotateSpeed = 90f;
transform.rotation = Quaternion.RotateTowards(transform.rotation,?
targetRotation, rotateSpeed * Time.deltaTime);
?5.使用Transform.LookAt函數(shù)
?這個函數(shù)會使物體的Z軸指向目標點,因此可以用于朝向目標的情況。
6.?Transform.RotateAround 圍繞旋轉(zhuǎn)
transform.RotateAround(Point.position, Vector3.forward, 45);
?7.Quaternion.LookRotation 注視旋轉(zhuǎn)
Vector3 lookDir = transform_a.position - transform.position; transform.rotation = Quaternion.LookRotation(lookDir);
?8.Quaternion.FromToRotation 從from到to旋轉(zhuǎn)
transform.rotation = Quaternion.FromToRotation(from, to);
?9.坑
transform.localEulerAngles的獲取的值始終為正數(shù),所以在旋轉(zhuǎn)范圍為負時,不能直接調(diào)用計算
需要定義一個外部變量,如:
private float euler = 0;
minRot_y = GetRotationY(false);
?maxRot_y = GetRotationY(true);
?euler = Mathf.Clamp(euler - speed, minRot_y, maxRot_y);
? //myCamera.transform.localEulerAngles =文章來源:http://www.zghlxwxcb.cn/news/detail-468372.htmlnew Vector3(myCamera.transform.localEulerAngles.x, eulerY, 0);
?myCamera.transform.localRotation = Quaternion.Euler(myCamera.transform.localEulerAngles.x, eulerY, 0);文章來源地址http://www.zghlxwxcb.cn/news/detail-468372.html
到了這里,關于unity---物體旋轉(zhuǎn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!