Scene視圖是開發者開發遊戲時,操做最頻繁的視圖。由於一旦一個遊戲對象被添加到遊戲的場景中,就須要首先使用鼠標爲這個遊戲對象設置出合適的狀態。並且開發者還須要多角度的觀察遊戲場景中的各遊戲對象。基於以上的緣由,Unity提供了不少快捷操做,支持開發者對Scene視圖所作的各類操做,常見的操做方式有:工具
直接按下鍵盤上的Q、W、E、R鍵,便可選中Unity左上角,工具欄上的4個按鈕,且按鈕與按鍵一一對應,省去了開發者使用鼠標點擊的麻煩。this
使用鼠標的滾輪,能夠控制Scene視圖「窗口」與各遊戲對象的遠近,如圖2-14所示,且向上滾動靠近,向下滾動遠離。spa
圖2-14 使用鼠標的滾輪,控制Scene視圖與場景中各遊戲對象距離的遠近orm
使用鼠標雙擊Hierarchy視圖上的遊戲對象名,場景視圖會移動,直到對應的對象處於場景視圖的中間,如圖2-15所示。當開發者在場景中找不到對應的遊戲對象時,可使用這種方法快速找到。對象
圖2-15 鼠標雙擊對象名,場景視圖速度定位到對應對象,且被顯示在場景視圖的中央教程
在場景視圖裏,按下鼠標中間的按鈕(或滾輪),鼠標變成了,而後移動鼠標,能夠任意移動場景。遊戲
,遊戲開發
如圖2-16所示,開發
。其it
做用等同於工具欄上的第一個按鈕。
在場景視圖裏,按下鍵盤上的Alt鍵,鼠標就會變成,再按下鼠標的左鍵拖動,可圍繞指定的遊戲對象移動。如圖2-17所示。
圖2-16 任意移動場景視圖中的場景 圖2-17 繞着場景視圖中的對象移動
在場景視圖裏,按下鼠標的右鍵,鼠標就會變成眼睛的樣子,而後再按下鍵盤上的「W、S、A、D」鍵,就能夠模擬第一人稱在場景中向前、後、左、右移動,移動鼠標至關於轉動人物的頭部。如圖2-18所示。
圖1-18 模擬第一人稱,在場景中移動 圖2-19 場景視圖中的Gizmo工具
讀者必定注意到,在Scene視圖的右上角有個座標軸的模型,在Unity中它被稱爲Gizmo,如圖2-19所示。使用它能夠將Scene視圖,迅速切換到預約義的觀察視角,具體的操做是單擊Gizmo的軸。如圖2-20,切換了三個視角來查看Scene視圖中的遊戲對象。
圖2-20 使用不一樣的視角查看視圖中的遊戲對象
使用本章前面介紹的方法,讀者可讓遊戲場景中的遊戲對象改變位置,或者旋轉等等。可是,光是使用手動的方式,調節各遊戲的狀態,看起來不像是遊戲的風格。畢竟玩家只想控制一個遊戲對象,至於其它的遊戲對象,那是電腦須要考慮的事情!沒錯,爲了讓遊戲對象本身動起來,就只好使用腳本了。本節就先帶領讀者看看腳本,及其做用效果,而讀者無需在乎代碼的實現細節,這會在後面的章節裏講解。
下面是一個示例,它會讓場景中的立方體邊旋轉邊移動,並且在開始移動前還會改變本身的大小!是否是很神奇?下面是讓立方體旋轉、移動的腳本的所有代碼:
01 using UnityEngine;
02 using System.Collections;
03
04 public class MyTransform : MonoBehaviour
05 {
06 public float scaleValue = 1.5f;
07 public float xPosition = 0.1f;
08 public int yRotation = 10;
09 // Use this for initialization
10 void Start ()
11 {
12 transform.localScale = new Vector3(1,scaleValue,1);
13 }
14 // Update is called once per frame
15 void Update ()
16 {
17 transform.Translate ( new Vector3(xPosition,0,0),Space.World);
18 transform.Rotate (Vector3.up * yRotation,Space.World);
19 }
20 }
這個腳本讓立方體產生的運動效果如圖2-21所示。
圖2-21 在Game視圖裏查看,立方體先改變大小,而後一邊移動一邊旋轉的立方體
讀者必定在奇怪,爲何腳本能夠改變立方體的狀態?實際上,它改變立方體狀態的方法與咱們改變立方體狀態的方法是同樣的,沒錯!它也是經過修改立方體上Transform組件的屬性,進而達到目的的!
全部腳本中的代碼,實際上定義的是一個與腳本同名的類(class)。而類裏又定義了變量(variable)和方法(methord),如圖2-22所示。
圖2-22 腳本的各組成部分
提示:腳本代碼中,以雙斜槓開始的代碼行是註釋。是爲了說明代碼的做用而添加的,對腳本自己不產生任何影響。
1.類
讀者在前面已經見識過遊戲對象的組件了,那個時候做者告訴讀者,那是一類屬性的總稱。其實,組件的本質就是類!組件與類只是不一樣環境下,對同一東西的不一樣的稱呼而已。稱呼的轉換過程是這樣的:類定義在腳本中,腳本能夠添加到遊戲對象上,最後以組件的形式成爲了遊戲對象的一部分,如圖2-23所示。
圖2-23 類、腳本、組件
2.變量
腳本中的變量,是用來存儲數據的,讀者能夠把它看做是容器。其實,組件下的屬性本質上也是變量,一樣是同一事物在不一樣場景下的不一樣稱呼而已,如圖2-24所示。展開成爲組件的腳本,就能夠看到其下的屬性名與變量名基本一致,由於字母的大小寫可能有所不一樣。
圖2-24 變量、屬性
變量中存儲的數據,成爲了組件屬性默認設置的值。
3.方法
腳本中的方法,用於完成特定的操做或者任務,例如,本節的示例中,讓立方體變大、移動和旋轉,就是腳本中由方法完成的任務,如圖2-25所示。
圖2-25 方法的做用
在Unity中,將腳本賦予遊戲對象的方法有多種,本小節介紹兩種最多見的方法,如圖2-26所示。
q 使用鼠標,直接將腳本從Project視圖拖動到,Hierarchy視圖裏指定的遊戲對象上;
q 先選中Hierarchy視圖裏指定的遊戲對象,Inspector視圖會顯示此遊戲對象的全部組件,使用鼠標,將腳本從Project視圖拖動到Inspector視圖便可;
最後經過查看Inspector視圖裏,是否出現了與腳本同名的組件,就能夠驗證腳本是否被成功的賦予了遊戲對象。
對於本章的遊戲示例,腳本MyTransform被賦予了Cube對象(名爲MyCube)。而在遊戲運行的過程當中,Cube對象會發生狀態的改變,則是由於腳本代碼修改了Cube對象上Transform組件的屬性,進而實現了改變遊戲對象狀態的效果。
圖2-26 將腳本賦予遊戲對象的兩種方法
Unity上方中間的部分,在工具欄的位置處有3個按鈕,如圖2-27所示,做用依次是運行遊戲、停止遊戲和單步運行遊戲。讀者能夠單擊對應的按鈕,來決定運行遊戲的方式。
圖2-27 控制遊戲運行的3個工具欄按鈕
本章的內容能夠分爲三大部分。第一部分是構建遊戲場景,讀者能夠從中瞭解到遊戲場景的操做,以及添加遊戲對象的方法;第二部分是改變遊戲對象的狀態,即遊戲對象的位置、朝向和大小,藉此瞭解了Transform組件;第三部分是使用腳本,腳本免去了讀者手動改變遊戲對象狀態的麻煩,也使得項目有了遊戲的樣子,藉此瞭解了腳本的的各組成部分,即類、變量和方法,以及腳本各組成部分與遊戲對象的關係。
本文選自:C#遊戲開發快速入門大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!