第59節 - Unity: C# Hello World
這一節我會介紹在Unity內用以下方法寫Hello World程式:
例子1) 在Unity內建立一個Script(腳本),利用預設的Viusal Studio IDE開啟Script,再利用C#語言寫Unity Console Hello World程式。
例子2) 在Unity內建立一個Script,利用內置(built-in)的另一個選擇MonoDevelop IDE開啟Script,再利用C#語言寫Unity Console Hello World程式。
例子3) 在Unity內執行Scene(場景)的Hello World程式。
例子4) 在Android智能電話上執行以上例子3的Unity Scene Hello World程式。
例子1) 在Unity內建立一個Script,利用預設的Viusal Studio IDE開啟Script,再利用C#語言寫Unity Console Hello World程式
在Unity內利用Viusal Studio建立Hello World程式和單純利用Viusal Studio建立Hello World程式有甚麼分別?
大家可能會問在Unity內利用Viusal Studio建立Hello World程式和單純利用Viusal Studio建立Hello World程式有甚麼分別?
在Unity內建立的Script,所有類別(Class)都會繼承(Inherit) Unity預設的MonoBehaviour類別,所以所有類別都繼承了MonoBehaviour類別的特性,例如Life Cycle的Start()和Update()方法,我會在這節再加以說明。
首先建立一個新檔案,如下圖:

- 選擇Unity Icon。

- 選擇New。
- 輸入Project Name。
- 輸入檔案儲存位置。
- 選擇2D。
- 選擇Create project。

- 首先在於Assets區內,按Mouse右鍵 。
- 選擇Create > C# Script。

- C# Script檔案名稱"HelloWorld"。

- 打開HelloWorld.cs。
- 在Unity內建立的Script,所有類別(Class)都會繼承(Inherit) Unity預設的MonoBehaviour類別,所以所有類別都繼承了MonoBehaviour類別的特性,例如Life Cycle的Start()和Update()方法。
- Start()方法是MonoBehaviour類別Lift Cycle的主要方法之一,它用來設定遊戲開始時的初始值。
- Update()方法是MonoBehaviour類別Lift Cycle的另一個主要方法,它會已60FPS(一秒60次)更新畫面,做出動畫效果。 注意: 我會在下幾節詳細介紹Unity的Lift Cycle。

- 這一次我們用Debug.Log()方法,把"Hello, World!"顯示在Unity Console上。
- 選擇Save。

- 選擇HelloWorld Script。
- 在Inspector區內,HelloWorld Script就會自動更新 。
注意: 剛剛在Assets區內建立的HelloWorld Script還沒有與Unity的任何物件(GameObject)有聯繫,所以就須要把HelloWorld Script加入到Unity的物件內,例如Unity預設的Camera物件,如下圖:

- 在Hierarchy區內,選擇Main Camera。
- 選擇Add Component。
- 選擇Script。
- 選擇Hello World。

- Hello World Script就會已Component形式加入在Main Camera內。

- 選擇File > Save scenes as... > scene。
- 選擇Save。

- scene檔案就會顯示在Assets區內。

- 執行程式。

- "Hello, World!"就會顯示在Unity Console上。
例子2) 在Unity內建立一個Script,利用內置(built-in)的另一個選擇MonoDevelop IDE開啟Script,再利用C#語言寫Unity Console Hello World程式
Unity內置另一個可選擇的IDE - MonoDevelop,如下圖:
注意: 我會選擇Viusal Studio來寫遊戲程式。

- 選擇Edit > Preferences...。

- 選擇External Tools > MonoDevelop (built-in)。

- 打開HelloWorld.cs。

- "Hello, World!"就會顯示在Unity Console上。
例子3) 在Unity內執行Scene(場景)的Hello World程式
這例子會介紹在Unity內執行Scene(場景)的Hello World程式,如下圖:

- 選擇New。
- 輸入Project Name。
- 輸入檔案儲存位置。
- 選擇2D。
- 選擇Create project。

- 選擇Main Camera。
- 設定Main Camera位置 = (0,0)。

- 在Hierarchy區內,按照Mouse右鍵。
- 選擇UI > Text。

- Canvas物件就會自動建立在Hierarchy區內,而剛剛選擇的UI Text就會自動設定為Canvas的子物件。
注意: 任何UI內的Components都是Canvas內的子物件。
選擇Text。 - 設定Text位置 = (0,0,0)。
注意: Pos Z = 0是因為Main Camera Pos Z = -10,則是Text必須在Main Camera的前方。
- 設定Text大小為1000 x 500。
- 輸入"Hello, World!"。
- 設定Font Size = 50。
- 設定Text位置 = 至中。
- 設定Color = Red。

- 選擇Canvas。
- 選擇Render Mode = Screen Space - Camera。
注意: 使用Camera作為參照,是將UI平面放置在Camera前的一定距離,因為是參照Camera,如果螢幕大小、分辨率、Camera視錐改變時UI平面會自動調整大小。如果Scene中的物件(GameObject)比UI平面更靠近攝影機,就會遮擋到UI平面。
如果選擇Render Mode = Screen Space - Overlay。
在此模式下不會參照到Camera,UI直接顯示在任何圖形之上 。 - 把Main Camera拖放到Render Camera內。

- 選擇File > Save scenes as... > scene。
- 選擇Save。

- 選擇Screen Size = 1024 x 768。
- 執行程式,"Hello, World!"就會顯示在Unity Game Screen上。
例子4) 在Android智能電話上執行以上例子3的Unity Scene Hello World程式
這例子會介紹在Unity內Android智能電話上執行以上例子3的Unity Scene Hello World程式,如下圖:

- 選擇File > Build Settings...。

- 選擇Add Open Scenes。
- 選擇Android。
- 選擇Player Settings...。
- 選擇顯示在智能電話上的圖案(Icon)。
- 輸入Bundle Identifier = com.hkprogram.MyDemo59_2,一個Android Google Play指定每一個App都必須有自己獨有的名稱。
- 選擇Build。

- 建立一個".apk"檔案。

- 把剛剛建立好的"MyDemo59_2.apk"檔案複製到你的智能電話上。

- 選擇安裝。

- 智能電話上就會安裝好MyDemo59_2.apk程式。

- 這是Unity內置的Splashscreen,過場動畫。
注意: 因為我選擇Unity Personal (Free) Edition,Unity的Splashscreen是內置的。付費版就可以去除Unity的Splashscreen。
但是我覺得Unity是一隻十分出名的Game Engine軟件,給你的玩家知道你的遊戲是用Unity開發的,也是一件不錯的事。

- "Hello, World!"就會顯示在你的智能電話上。