Unity基础知识—Transform
生活随笔
收集整理的這篇文章主要介紹了
Unity基础知识—Transform
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 組件介紹
- 常用屬性和方法
組件介紹
| Position | 表示世界坐標/本地坐標 |
| Rotation | 表示世界旋轉(zhuǎn)角度/本地旋轉(zhuǎn)角度 |
| Scale | 表示縮放 |
在Transform面板上顯示的是相對于父物體的變化
子物體世界坐標=子物體本地坐標+父物體的世界坐標
子物體世界旋轉(zhuǎn)=子物體本地旋轉(zhuǎn)+父物體的世界旋轉(zhuǎn)
子物體世界縮放=子物體本地縮放*父物體的世界縮放
常用屬性和方法
| 坐標 | transform.position(Vector3 pos)(世界坐標) / transfrom.localPosition(Vector3 pos)(本地坐標) |
| 角度(歐拉角) | transform.eulerAngles(Vector3 pos)(世界歐拉角) / transform.localEulerAngles(Vector3 pos)(本地歐拉?) |
| 角度(四元數(shù)) | transform.rotation(世界四元數(shù)) / transform.localRotation(本地四元數(shù)) |
| 縮放 | transform.localScale |
| 方向 | transform.forword(自身前方) / transform.up(自身上方) / transform.right(自身右方) 相反方向只需要加個 " - " 就可以了 |
| 移動 | transform.Translate(Vector3 translation) / transform.Translate(Vector3 translation, Space relativeTo)translation為移動向量,包括方向和大小,relativeTo參考坐標系空間,默認為Space.Self(本地)Space.World(世界) |
| 自轉(zhuǎn) | transform.Rotate(Vecotr3 axis, float angle, Space relativeTo)其中參數(shù)axis為旋轉(zhuǎn)軸方向,參數(shù)angle為旋轉(zhuǎn)角度,參數(shù)relativeTo為參數(shù)坐標系,默認為space.self(本地)Space.World(世界) |
| 繞某個點和某個軸旋轉(zhuǎn) | transform.RotateAround(Vector3 point, Vector3 axis, float angle)其中參數(shù)point為參考點坐標,參數(shù)axis為旋轉(zhuǎn)軸方向,參數(shù)angle為旋轉(zhuǎn)角度此方法的功能使使得GameObject對象繞著point點的axis方向旋轉(zhuǎn)angle度 |
| 看向某個對象 | transform.LookAt(Transform target) / transform.LookAt(Vector3 worldPosition) / transform.LookAt(Transform target, Vector3 worldup) / transform.LookAt(Vector3 worldPosition, Vector3 worldup)其中參數(shù)target為transform自身坐標系中z軸指向的目標,參數(shù)worldup為transform自身坐標系中y軸最大限度指向的方向此方法的功能是使得GameObject對象自身坐標系中的z軸指向target,y軸方向最大限度地指向worldup方向 |
| 獲得根對象 | transform.root返回的是根對象的位置 |
| 獲得父對象 | transform.parent返回的是父對象的位置 |
| 獲得子對象 | transform.GetChild(int index)index是子物體的下標,從0開始 |
| 獲得子物體的數(shù)量 | transform.childCount返回的數(shù)子物體數(shù)量 “int” 型 |
| 是否是某個對象的子物體 | transform.IsChildOf(Transform patent)用于判斷transform對應(yīng)的GameObject對象是否為參數(shù)parent的子物體,返回值為true的三種情況:A.isChildOf(B):①A和B指向同一對象,②A是B的一級子物體,③A是B的多級子物體 |
| 設(shè)置父物體 | transform.SetParent(Transform patent)patent是父對象的position |
| 查找對象 | transform.Find(string name)參數(shù)name可以是對象名或者對象路徑,相較于Gameobject.Find來說此方法可以查找隱藏對象(若其有父對象,則父對象的Transform組件必須是激活狀態(tài)) |
| 位置是否發(fā)生了變化 | transform.hasChanged;返回的是 “bool” 值 |
| 分離層級關(guān)系 | transform.DetachChildren()使GameObject對象的所有子物體和自身分離層級關(guān)系 |
| 設(shè)置物體的層級順序 | transform.SetSiblingIndex(int index);參數(shù)index是物體要修改的序號 transform.SetAsFirstSibling();設(shè)置物體為第一個子對象,transform.SetAsLastSibling();設(shè)置物體為最后一個子物體 |
歐拉角:是物體繞坐標系三個坐標軸(x,y,z軸)的旋轉(zhuǎn)角度
靜態(tài)歐拉角:繞世界坐標系三個軸的旋轉(zhuǎn),由于物體旋轉(zhuǎn)過程中坐標軸保持靜止
動態(tài)歐拉角:繞物體坐標系三個軸的旋轉(zhuǎn),由于物體旋轉(zhuǎn)過程中坐標軸隨著物體做相同的轉(zhuǎn)動
萬向鎖:對于動態(tài)歐拉角,無論heading和bank為多少度,只要pitch為±90°,就會出現(xiàn)萬向鎖現(xiàn)象
四元素:在計算機圖形學(xué)中,四元數(shù)用于物體的旋轉(zhuǎn),是一種較為復(fù)雜,但是效率較高的旋轉(zhuǎn)方式。其中x,y,z 代表的是向量的三維坐標,w代表的是角度
| 三個角度組成,直觀,容易理解,可以進行從一個方向到另一個方向旋轉(zhuǎn)大于180度的角度,但是容易產(chǎn)生死鎖 | 四元旋轉(zhuǎn)不存在萬向節(jié)鎖問題,存儲空間小,計算效率高。但是單個四元數(shù)不能表示在任何方向上超過180度的旋轉(zhuǎn),四元數(shù)的數(shù)字表示不直觀。 |
縮放:當(dāng)縮放的是父物體,則其子物體也會進行縮放,而目標是子物體則只會影響子物體
總結(jié)
以上是生活随笔為你收集整理的Unity基础知识—Transform的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity中的Assetbundle,U
- 下一篇: Unity 基础 之 IDragHanl