1. 程式人生 > >C#開發Unity遊戲教程之Scene視圖與腳本的使用

C#開發Unity遊戲教程之Scene視圖與腳本的使用

ont 展開 支持 查看 提示 microsoft etime font 一個

C#開發Unity遊戲教程之Scene視圖與腳本的使用

Unity中Scene視圖的快捷操作

Scene視圖是開發人員開發遊戲時,操作最頻繁的視圖。

由於一旦一個遊戲對象被加入到遊戲的場景中,就須要首先使用鼠標為這個遊戲對象設置出合適的狀態。

並且開發人員還須要多角度的觀察遊戲場景中的各遊戲對象。基於以上的原因,Unity提供了非常多快捷操作,支持開發人員對Scene視圖所做的各種操作。常見的操作方式有:

  • 直接按下鍵盤上的QWER鍵。就可以選中Unity左上角,工具欄上的4個button。且button與按鍵一一相應,省去了開發人員使用鼠標點擊的麻煩。

  • 使用鼠標的滾輪,能夠控制

    Scene視圖“窗體”與各遊戲對象的遠近,如圖2-14所看到的,且向上滾動靠近,向下滾動遠離。

技術分享

2-14 使用鼠標的滾輪。控制Scene視圖與場景中各遊戲對象距離的遠近

  • 使用鼠標雙擊Hierarchy視圖上的遊戲對象名,場景視圖會移動,直到相應的對象處於場景視圖的中間,如圖2-15所看到的。

    當開發人員在場景中找不到相應的遊戲對象時,能夠使用這樣的方法高速找到。

技術分享

2-15 鼠標雙擊對象名,場景視圖速度定位到相應對象。且被顯示在場景視圖的中央

  • 在場景視圖裏,按下鼠標中間的button(或滾輪)。鼠標變成了。然後移動鼠標,能夠隨意移動場景

  • 如圖2-16所看到的

  • 。其

  • 作用等同於工具欄上的第一個button。

  • 在場景視圖裏,按下鍵盤上的Alt鍵,鼠標就會變成。再按下鼠標的左鍵拖動。可環繞指定的遊戲對象移動。

    如圖2-17所看到的。

技術分享

2-16 隨意移動場景視圖中的場景 2-17 繞著場景視圖中的對象移動

  • 在場景視圖裏,按下鼠標的右鍵,鼠標就會變成眼睛的樣子。然後再按下鍵盤上的“WSAD”鍵,就能夠模擬第一人稱在場景中向前、後、左、右移動,移動鼠標相當於轉動人物的頭部。如圖2-18所看到的。

?技術分享

1-18 模擬第一人稱。在場景中移動 2-19 場景視圖中的

Gizmo工具

  • 讀者一定註意到,在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視圖與腳本的使用