C#開發Unity遊戲教程之Scene視圖與腳本的使用
C#開發Unity遊戲教程之Scene視圖與腳本的使用
Unity中Scene視圖的快捷操作
Scene視圖是開發人員開發遊戲時,操作最頻繁的視圖。
由於一旦一個遊戲對象被加入到遊戲的場景中,就須要首先使用鼠標為這個遊戲對象設置出合適的狀態。
並且開發人員還須要多角度的觀察遊戲場景中的各遊戲對象。基於以上的原因,Unity提供了非常多快捷操作,支持開發人員對Scene視圖所做的各種操作。常見的操作方式有:
-
直接按下鍵盤上的Q、W、E、R鍵。就可以選中Unity左上角,工具欄上的4個button。且button與按鍵一一相應,省去了開發人員使用鼠標點擊的麻煩。
-
使用鼠標的滾輪,能夠控制
圖2-14 使用鼠標的滾輪。控制Scene視圖與場景中各遊戲對象距離的遠近
-
使用鼠標雙擊Hierarchy視圖上的遊戲對象名,場景視圖會移動,直到相應的對象處於場景視圖的中間,如圖2-15所看到的。
當開發人員在場景中找不到相應的遊戲對象時,能夠使用這樣的方法高速找到。
圖2-15 鼠標雙擊對象名,場景視圖速度定位到相應對象。且被顯示在場景視圖的中央
-
在場景視圖裏,按下鼠標中間的button(或滾輪)。鼠標變成了。然後移動鼠標,能夠隨意移動場景。
-
,
-
如圖2-16所看到的,
-
。其
-
作用等同於工具欄上的第一個button。
-
在場景視圖裏,按下鍵盤上的Alt鍵,鼠標就會變成。再按下鼠標的左鍵拖動。可環繞指定的遊戲對象移動。
如圖2-17所看到的。
圖2-16 隨意移動場景視圖中的場景 圖2-17 繞著場景視圖中的對象移動
-
在場景視圖裏,按下鼠標的右鍵,鼠標就會變成眼睛的樣子。然後再按下鍵盤上的“W、S、A、D”鍵,就能夠模擬第一人稱在場景中向前、後、左、右移動,移動鼠標相當於轉動人物的頭部。如圖2-18所看到的。
?
圖1-18 模擬第一人稱。在場景中移動 圖2-19 場景視圖中的
-
讀者一定註意到,在Scene視圖的右上角有個坐標軸的模型,在Unity中它被稱為Gizmo。如圖2-19所看到的。
使用它能夠將Scene視圖,迅速切換到提前定義的觀察視角。詳細的操作是單擊Gizmo的軸。如圖2-20,切換了三個視角來查看Scene視圖中的遊戲對象。
圖2-20 使用不同的視角查看視圖中的遊戲對象
Unity中使用腳本
使用本章前面介紹的方法,讀者能夠讓遊戲場景中的遊戲對象改變位置。或者旋轉等等。
可是,光是使用手動的方式。調節各遊戲的狀態,看起來不像是遊戲的風格。
畢竟玩家僅僅想控制一個遊戲對象,至於其他的遊戲對象。那是電腦須要考慮的事情。沒錯。為了讓遊戲對象自己動起來,就僅僅好使用腳本了。本節就先帶領讀者看看腳本。及其作用效果,而讀者無需在意代碼的實現細節,這會在後面的章節裏解說。
Unity中演示樣例效果展示
以下是一個演示樣例。它會讓場景中的立方體邊旋轉邊移動。並且在開始移動前還會改變自己的大小。是不是非常奇妙?以下是讓立方體旋轉、移動的腳本的所有代碼:
-
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組件的屬性。進而達到目的的。
Unity中腳本的構成
全部腳本中的代碼。實際上定義的是一個與腳本同名的類(class)。而類裏又定義了變量(variable)和方法(methord)。如圖2-22所看到的。
圖2-22 腳本的各組成部分
提示:腳本代碼中,以雙斜杠開始的代碼行是凝視。
是為了說明代碼的作用而加入的。對腳本本身不產生不論什麽影響。
1.類
讀者在前面已經見識過遊戲對象的組件了。那個時候作者告訴讀者。那是一類屬性的總稱。事實上。組件的本質就是類!
組件與類僅僅是不同環境下,對同一東西的不同的稱呼而已。稱呼的轉換過程是這種:類定義在腳本中,腳本能夠加入到遊戲對象上,最後以組件的形式成為了遊戲對象的一部分,如圖2-23所看到的。
圖2-23 類、腳本、組件
2.變量
腳本中的變量。是用來存儲數據的。讀者能夠把它看作是容器。事實上。組件下的屬性本質上也是變量,相同是同一事物在不同場景下的不同稱呼而已,如圖2-24所看到的。展開成為組件的腳本,就能夠看到其下的屬性名與變量名基本一致,由於字母的大寫和小寫可能有所不同。
圖2-24 變量、屬性
變量中存儲的數據。成為了組件屬性默認設置的值。
3.方法
腳本中的方法。用於完畢特定的操作或者任務,比如。本節的演示樣例中,讓立方體變大、移動和旋轉,就是腳本中由方法完畢的任務。如圖2-25所看到的。
圖2-25 方法的作用
Unity中將腳本賦予遊戲對象的方法
在Unity中,將腳本賦予遊戲對象的方法有多種。本小節介紹兩種最常見的方法,如圖2-26所看到的。
-
q 使用鼠標,直接將腳本從Project視圖拖動到,Hierarchy視圖裏指定的遊戲對象上。
-
q 先選中Hierarchy視圖裏指定的遊戲對象,Inspector視圖會顯示此遊戲對象的全部組件。使用鼠標。將腳本從Project視圖拖動到Inspector視圖就可以。
最後通過查看Inspector視圖裏,是否出現了與腳本同名的組件。就能夠驗證腳本是否被成功的賦予了遊戲對象。
對於本章的遊戲演示樣例,腳本MyTransform被賦予了Cube對象(名為MyCube)。而在遊戲執行的過程中,Cube對象會發生狀態的改變。則是由於腳本代碼改動了Cube對象上Transform組件的屬性,進而實現了改變遊戲對象狀態的效果。
圖2-26 將腳本賦予遊戲對象的兩種方法
Unity中執行遊戲
Unity上方中間的部分。在工具欄的位置處有3個button。如圖2-27所看到的,作用依次是執行遊戲、中止遊戲和單步執行遊戲。
讀者能夠單擊相應的button,來決定執行遊戲的方式。
圖2-27 控制遊戲執行的3個工具欄button
小結
本章的內容能夠分為三大部分。第一部分是構建遊戲場景。讀者能夠從中了解到遊戲場景的操作,以及加入遊戲對象的方法;第二部分是改變遊戲對象的狀態,即遊戲對象的位置、朝向和大小,借此了解了Transform組件;第三部分是使用腳本,腳本免去了讀者手動改變遊戲對象狀態的麻煩,也使得項目有了遊戲的樣子。借此了解了腳本的的各組成部分。即類、變量和方法。以及腳本各組成部分與遊戲對象的關系。
本文選自:C#遊戲開發高速入門大學霸內部資料。轉載請註明出處,尊重技術尊重IT人!
C#開發Unity遊戲教程之Scene視圖與腳本的使用