[ Unity 2D ] 教學 #03 – 位置、旋轉、縮放

標籤: , ,

上一篇文提到了Transform以及基本的移動,但是沒有把Transform講清楚

在Transform中有三個最重要的資訊,分別是位置(Position)、旋轉(Rotation)、縮放(Scale),這三個屬性在Unity遊戲物件的屬性視窗中都可以從Transform組件看到。

●Position – 位置

遊戲物件在世界座標中的位置,是一個Vector3(三圍向量)的值,由於我們設計的是2D遊戲,在指定位置時只要用Vector2即可,Unity會自動將Vector2轉型成Vector3。

程式碼範例如下

transform.position = new Vector3(0, 0, 0);//指定物件位置為座標點(0,0,0) 亦為中心點
transform.position = new Vector2(5, 1);//指定物件位置為座標點(5,1)

Vector2 pos = transform.position; //獲得遊戲物件的位置

●Rotation – 旋轉

在 Transform中有個Rotate函數可以讓物件旋轉,其參數是Vector3,其實在Unity中絕大多數與空間有關的值都是Vector3,只是在2D中不太需要用到Z軸(只有旋轉時需要),因此使用Vector2代表平面空間。

程式碼範例如下

transform.Rotate(new Vector3(0, 0, 5)); //Z軸旋轉5度
transform.Rotate(new Vector2(5, 0)); //X軸旋轉5度

Vector3 rotate = transform.rotation.eulerAngles; //獲得遊戲物件當前的旋轉值

rotation屬性是物件的旋轉值,他的類型是Quaternion(四元數),eulerAngles這個屬性是四元數轉換成Vector3。

●Scale – 縮放

縮放的值也是用Vector3,不過在2D也一樣可以使用Vector2,縮放的值分為XYZ軸三軸,是指物件在XYZ三軸上縮放的倍數,若設為1就是原始大小(1倍)。

程式碼範例如下

transform.localScale = new Vector2(1.5f, 1.5f);//更改為1.5倍大
transform.localScale = new Vector3(1.5f, 1.5f,1.5f);//更改為1.5倍大 

Vector3 scale = transform.localScale;//獲得遊戲物件的縮放值

Vector2跟Vector3的參數都是float,在輸入小數的時候必須加上「f」。

本次教學就到這裡!

[ Unity 2D ] 教學 #04 – 滑鼠事件、鍵盤事件



相關文章

教學 #11 – Tag(標籤) 在GameObject的屬性視窗中,可以看到上面有個「Tag」屬性,中文稱作為標籤 Tag屬性可以作為分類的用途,例如將食物分為飲料和餅乾等等,在Unity中也可以將物件用Tag分為各種不同的類...
教學 #07 – 碰撞器、觸發器、剛體(二)... ---Rigidbody - 剛體--- 想必第一次看到這詞的人一定會問:「剛體是什麼?」這東西不像碰撞器與觸發器那樣可以從字面上來解讀,想知道完整解釋的話可以查查維基百科。 大...
遊戲程式入門 #01 Start 與 Update 當我們在 Unity 中新增一個腳本 (Script) 時,程式碼中會待有預設的 Start( ) 與 Update( ) 函數,這兩個函數代表的涵義分別是「開始」與「每次更新」 嘗試加入以下程...
教學 #10 – 小總結●小飛兵 射擊遊戲實作(一)... 已經到第10篇教學文了,這次我們將實作出一款可以遊玩的射擊遊戲,將會用到之前所有教學文所教的東西。 ※注意本篇內容較多,請小心食用 這篇教學文也可以算做是一個複習,接下來我們會把之...