'讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型'

"

在上一章的內容中,我們成功的在Unity3d中創建了一個腳本文件,並把它關聯到了場景中的某個遊戲對象上(選擇的是MainCamera,主攝像機)。

從這一課的內容開始,我們將一起來深入瞭解C#的基本語法,首先要學習的就是C#中的變量和數據類型。前方高能預警,從這一課開始,我們將大量接觸到編程中的各種名詞概念。不過Don’t panic,只要你跟著課程一步步學習下去,相信都不是什麼難事~

還等什麼呢?讓我們開始全新的旅程吧~

03 認識Unity3d的好基友C#-C#中的變量和數據類型

在編程語言的世界裡中,每一個數值都需要存儲在某個特定的地方,我們稱之為變量。變量由變量名稱和數據類型構成。變量的數據類型決定了我們可以在其中存儲哪種類型的數據。

通過使用變量,可以讓我們的應用擁有記憶。你可以把變量看做是存儲某個數據的臨時儲物箱。正如儲物箱有各種類型和尺寸的一樣,數據也五花八門。

你不能把東西扔到儲物箱裡面然後撒手不管,因為經常會放入一些新的東西。當你的應用需要記住一些變化時,就需要把舊的數據拿出來,然後把新的數據放進去。

這就是變量(variable)的本質——變(vary)。變量就像小孩的玩具積木一樣,如圖所示。

"

在上一章的內容中,我們成功的在Unity3d中創建了一個腳本文件,並把它關聯到了場景中的某個遊戲對象上(選擇的是MainCamera,主攝像機)。

從這一課的內容開始,我們將一起來深入瞭解C#的基本語法,首先要學習的就是C#中的變量和數據類型。前方高能預警,從這一課開始,我們將大量接觸到編程中的各種名詞概念。不過Don’t panic,只要你跟著課程一步步學習下去,相信都不是什麼難事~

還等什麼呢?讓我們開始全新的旅程吧~

03 認識Unity3d的好基友C#-C#中的變量和數據類型

在編程語言的世界裡中,每一個數值都需要存儲在某個特定的地方,我們稱之為變量。變量由變量名稱和數據類型構成。變量的數據類型決定了我們可以在其中存儲哪種類型的數據。

通過使用變量,可以讓我們的應用擁有記憶。你可以把變量看做是存儲某個數據的臨時儲物箱。正如儲物箱有各種類型和尺寸的一樣,數據也五花八門。

你不能把東西扔到儲物箱裡面然後撒手不管,因為經常會放入一些新的東西。當你的應用需要記住一些變化時,就需要把舊的數據拿出來,然後把新的數據放進去。

這就是變量(variable)的本質——變(vary)。變量就像小孩的玩具積木一樣,如圖所示。

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

我們需要把正確的形狀放到正確的儲物箱裡面。儲物箱就是變量,而它的數據類型(datatype)決定了裡面能放什麼形狀的東西。形狀就是你可以放入變量的可能數值。

我們可以隨後更改每個箱子裡面的內容,比如可以拿出藍色的方塊積木,放進紅色的方塊積木,但前提是它們都是方塊形狀的。你不能把方塊積木放到一個圓孔裡面去,因為數值的數據類型和變量的數據類型必須是匹配的。

常見的數據類型有如下幾種。

(1)數字型的變量

在C#中,數字型的變量主要包括整數(int)、單精度浮點數(float)和雙精度浮點數(double)。float和double類型變量的區別是:float是單精度類型,其有效位數是6位,佔用4個字節的存儲空間。而double是雙精度類型,有效位數是15位,佔用8個字節的存儲空間。默認情況下,小數使用double來表示。如果需要使用float,需要在末尾加上f。

比如:float myNumber = 1.23f;

在上面這行代碼中,我們定義了一個名為myNumber的變量,其類型是float(單精度浮點數),其初始值是1.23。

除了以上3種最常用的數字變量類型,在C#中還有其他類型的數字變量,其使用方法大同小異,這裡就不再一一贅述了。

(2)文本型的變量

文本型的變量主要是char和string,其中char類型變量用於保存單個字符的值,而string類型變量則用於保存字符串的值。

比如:

string playerName = "Steve Jobs";

在上面這行代碼中,我們定義了一個名為playerName的變量,其類型是string(字符串),其初始值是Steve Jobs。

也可以用 string類型保存數字:

string myString = "1";

不過此時 myString 中保存的數據是字符串"1",並不是數字1。

(3)布爾型的變量

在C#中,布爾型的變量是bool,用於保存邏輯狀態的變量,包含兩個值:true和false。之所以要用布爾這個看起來很怪的名字,是為了紀念19世紀最重要的數學家,來自英格蘭的喬治·布爾。關於布爾的故事,感興趣的童鞋可以百科一下.

"

在上一章的內容中,我們成功的在Unity3d中創建了一個腳本文件,並把它關聯到了場景中的某個遊戲對象上(選擇的是MainCamera,主攝像機)。

從這一課的內容開始,我們將一起來深入瞭解C#的基本語法,首先要學習的就是C#中的變量和數據類型。前方高能預警,從這一課開始,我們將大量接觸到編程中的各種名詞概念。不過Don’t panic,只要你跟著課程一步步學習下去,相信都不是什麼難事~

還等什麼呢?讓我們開始全新的旅程吧~

03 認識Unity3d的好基友C#-C#中的變量和數據類型

在編程語言的世界裡中,每一個數值都需要存儲在某個特定的地方,我們稱之為變量。變量由變量名稱和數據類型構成。變量的數據類型決定了我們可以在其中存儲哪種類型的數據。

通過使用變量,可以讓我們的應用擁有記憶。你可以把變量看做是存儲某個數據的臨時儲物箱。正如儲物箱有各種類型和尺寸的一樣,數據也五花八門。

你不能把東西扔到儲物箱裡面然後撒手不管,因為經常會放入一些新的東西。當你的應用需要記住一些變化時,就需要把舊的數據拿出來,然後把新的數據放進去。

這就是變量(variable)的本質——變(vary)。變量就像小孩的玩具積木一樣,如圖所示。

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

我們需要把正確的形狀放到正確的儲物箱裡面。儲物箱就是變量,而它的數據類型(datatype)決定了裡面能放什麼形狀的東西。形狀就是你可以放入變量的可能數值。

我們可以隨後更改每個箱子裡面的內容,比如可以拿出藍色的方塊積木,放進紅色的方塊積木,但前提是它們都是方塊形狀的。你不能把方塊積木放到一個圓孔裡面去,因為數值的數據類型和變量的數據類型必須是匹配的。

常見的數據類型有如下幾種。

(1)數字型的變量

在C#中,數字型的變量主要包括整數(int)、單精度浮點數(float)和雙精度浮點數(double)。float和double類型變量的區別是:float是單精度類型,其有效位數是6位,佔用4個字節的存儲空間。而double是雙精度類型,有效位數是15位,佔用8個字節的存儲空間。默認情況下,小數使用double來表示。如果需要使用float,需要在末尾加上f。

比如:float myNumber = 1.23f;

在上面這行代碼中,我們定義了一個名為myNumber的變量,其類型是float(單精度浮點數),其初始值是1.23。

除了以上3種最常用的數字變量類型,在C#中還有其他類型的數字變量,其使用方法大同小異,這裡就不再一一贅述了。

(2)文本型的變量

文本型的變量主要是char和string,其中char類型變量用於保存單個字符的值,而string類型變量則用於保存字符串的值。

比如:

string playerName = "Steve Jobs";

在上面這行代碼中,我們定義了一個名為playerName的變量,其類型是string(字符串),其初始值是Steve Jobs。

也可以用 string類型保存數字:

string myString = "1";

不過此時 myString 中保存的數據是字符串"1",並不是數字1。

(3)布爾型的變量

在C#中,布爾型的變量是bool,用於保存邏輯狀態的變量,包含兩個值:true和false。之所以要用布爾這個看起來很怪的名字,是為了紀念19世紀最重要的數學家,來自英格蘭的喬治·布爾。關於布爾的故事,感興趣的童鞋可以百科一下.

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

值得一提的是,榮獲2018年圖靈獎(相當於計算機界的諾貝爾獎)的深度學習三巨頭之一Geoffrey Hinton竟然也是布爾家族的一員~

"

在上一章的內容中,我們成功的在Unity3d中創建了一個腳本文件,並把它關聯到了場景中的某個遊戲對象上(選擇的是MainCamera,主攝像機)。

從這一課的內容開始,我們將一起來深入瞭解C#的基本語法,首先要學習的就是C#中的變量和數據類型。前方高能預警,從這一課開始,我們將大量接觸到編程中的各種名詞概念。不過Don’t panic,只要你跟著課程一步步學習下去,相信都不是什麼難事~

還等什麼呢?讓我們開始全新的旅程吧~

03 認識Unity3d的好基友C#-C#中的變量和數據類型

在編程語言的世界裡中,每一個數值都需要存儲在某個特定的地方,我們稱之為變量。變量由變量名稱和數據類型構成。變量的數據類型決定了我們可以在其中存儲哪種類型的數據。

通過使用變量,可以讓我們的應用擁有記憶。你可以把變量看做是存儲某個數據的臨時儲物箱。正如儲物箱有各種類型和尺寸的一樣,數據也五花八門。

你不能把東西扔到儲物箱裡面然後撒手不管,因為經常會放入一些新的東西。當你的應用需要記住一些變化時,就需要把舊的數據拿出來,然後把新的數據放進去。

這就是變量(variable)的本質——變(vary)。變量就像小孩的玩具積木一樣,如圖所示。

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

我們需要把正確的形狀放到正確的儲物箱裡面。儲物箱就是變量,而它的數據類型(datatype)決定了裡面能放什麼形狀的東西。形狀就是你可以放入變量的可能數值。

我們可以隨後更改每個箱子裡面的內容,比如可以拿出藍色的方塊積木,放進紅色的方塊積木,但前提是它們都是方塊形狀的。你不能把方塊積木放到一個圓孔裡面去,因為數值的數據類型和變量的數據類型必須是匹配的。

常見的數據類型有如下幾種。

(1)數字型的變量

在C#中,數字型的變量主要包括整數(int)、單精度浮點數(float)和雙精度浮點數(double)。float和double類型變量的區別是:float是單精度類型,其有效位數是6位,佔用4個字節的存儲空間。而double是雙精度類型,有效位數是15位,佔用8個字節的存儲空間。默認情況下,小數使用double來表示。如果需要使用float,需要在末尾加上f。

比如:float myNumber = 1.23f;

在上面這行代碼中,我們定義了一個名為myNumber的變量,其類型是float(單精度浮點數),其初始值是1.23。

除了以上3種最常用的數字變量類型,在C#中還有其他類型的數字變量,其使用方法大同小異,這裡就不再一一贅述了。

(2)文本型的變量

文本型的變量主要是char和string,其中char類型變量用於保存單個字符的值,而string類型變量則用於保存字符串的值。

比如:

string playerName = "Steve Jobs";

在上面這行代碼中,我們定義了一個名為playerName的變量,其類型是string(字符串),其初始值是Steve Jobs。

也可以用 string類型保存數字:

string myString = "1";

不過此時 myString 中保存的數據是字符串"1",並不是數字1。

(3)布爾型的變量

在C#中,布爾型的變量是bool,用於保存邏輯狀態的變量,包含兩個值:true和false。之所以要用布爾這個看起來很怪的名字,是為了紀念19世紀最重要的數學家,來自英格蘭的喬治·布爾。關於布爾的故事,感興趣的童鞋可以百科一下.

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

值得一提的是,榮獲2018年圖靈獎(相當於計算機界的諾貝爾獎)的深度學習三巨頭之一Geoffrey Hinton竟然也是布爾家族的一員~

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

發明了布爾代數的George Boole正是Hinton的曾曾祖父,布爾的一個女婿是數學家和科幻作家Charles Howard Hinton,也是Hinton的曾祖父。Hinton父親的表兄妹Joan Hinton是一位核物理學家,曾參與了製造原子彈的曼哈頓計劃,後來常年定居於中國。Hinton的父親Howard Hinton是昆蟲學家,母親Margaret Clark是一名教師。布爾的傳承一路傳到Geofrey Hinton,從數學延伸到了人工智能和神經網絡領域。

在查了Hinton先生的族譜之後,才發現或許這才是真正的學術世家,“貴族”血統吧~這樣的世家比歐洲日本這些行將消亡的王室更值得每個人尊敬,比當下所謂的名媛富N代更應受到大家的推崇。

好了,八卦話題到此結束,我們來看看布爾類型變量的一個例子。

比如:

bool isPlayerDead = true;

在上面這行代碼中,我們定義了一個名為isPlayerDead的變量,其類型是bool(布爾),其初始值是真。 需要注意的是,C#是大小寫敏感的,不能將大小寫混淆。比如:

Bool bool1 = true;

該語句會報錯,因為 C#中並沒有 Bool 類型的變量,只有 bool 類型。

關於變量命名需要提醒大家的是,在C#中允許字母、數字、下劃線_出現在變量名中,但不能以數字開頭。也不允許以int,bool這些系統保留字作為變量名。

比如:

正確合理的變量命名方式:firstName、lastName、car1

不推薦的變量命名方式:firstname、lastname

錯誤的變量命名方式:1car、*name

當然,除了數字、文本和布爾3種基本類型的變量,在C#中還支持引用類型、枚舉類型等數據類型,在後續的實戰學習中我們會逐漸接觸到。

此外,C#還支持一種特殊的變量——常量。所謂的常量是指在程序運行過程中值不會發生變化的量。在聲明變量時,只需在變量的前面加上關鍵字const或readonly即可把該變量指定為一個常量。

比如:

const int constNum = 2;

readonly int readonlyNum = 3;

常量必須在聲明時賦值,且賦值後通常不允許再改變其值。如果將其他值賦給常量,編譯器就會報錯。

好了,說了這麼多的理論,我們還是需要在實踐中熟悉和掌握這些知識。

動手練習的時間到了,請大家跟隨課程的指導來自己輸入代碼熟悉一下。

創建新項目

首先要做的當然還是創建一個全新的項目了。當然,你也可以在之前項目的基礎上完成這項練習。但是為了避免一些不必要的麻煩,請按照課程的指導來操作~

打開Unity Hub,點擊New,創建一個新的項目,把它命名為MyVariables,其它設置保持默認即可。具體的操作過程這裡就不再重複了,如果還不知道怎麼創建新項目的童鞋,請返回之前的課程(最近的就是上一節~)參考一下。

在Unity編輯器的Project視圖中,右鍵單擊Assets,選擇Create-Folder,創建一個文件夾,命名為_Scripts。好了,既然這個操作要反覆進行,這裡就簡單解釋一下。首先為什麼我們要創建一個文件夾,這是因為雖然當前的項目中我們只有一個腳本文件,但是稍微大一點的項目中都可能會有多個腳本文件。為了便於管理,最好還是放在一個統一的文件夾中。

另外一個文件,為什麼我要在目錄名之前加個下劃線,其實不加也沒什麼問題。這是我個人的一個習慣。因為在稍微大型一點的項目中,會有很多個文件夾,可能還會導入來自Asset Store,或是其它的遊戲資源。這些導入的外部資源也可能會有一個名為Scripts的文件夾來組織裡面的遊戲腳本。為了將自己創建的遊戲資源和外部資源區別開,通常我會把自己創建的遊戲資源文件夾的前面添加一個下劃線。對於系統默認創建的,或是導入的外部資源,則保持原有的文件夾目錄名稱不變。

再次強調,這不是必須的,但卻是一個好的實踐方式。

在上一課的內容中,我們直接在Project視圖中創建了一個腳本文件。

而在這一課的內容中,我們將嘗試換一種方式。

Step1.在Unity編輯器的Hierarchy視圖中,右鍵單擊空白處,選擇3D Object-Cube,可以看到在Scene視圖中出現了一個立方體。

點擊選中這個遊戲對象,右鍵單擊,選擇Rename,把它更名為MyVariablesObject。當然,你也可以不更名,剩下的步驟依然是有效的。但是我習慣於讓場景中的每個遊戲對象都有一個有意義的名稱,便於後續的項目管理。

Step2.在Inspector視圖中點擊最右下角的Add Component,選擇New Script,然後給新的腳本文件更名為MyVariablesScript,點擊Create and Add確認。

這樣,我們就創建了一個新的遊戲腳本。

好了,讓我們簡單回顧一下創建遊戲腳本的方式:

1.創建一個新的遊戲對象(在上一課中是選中一個已有的遊戲對象)

2.在Inspector視圖中點擊Add Component,選擇New Script(在上一課中是選擇已經創建好的腳本)

就這麼簡單的兩步操作,就創建了一個新的遊戲腳本,並讓這個腳本跟某個遊戲對象關聯在一起,可以用來控制遊戲對象的各種行為(後面會講到)。

當然,我們剛才所創建的腳本文件MyVariablesScript在Project視圖中出現在了根目錄下,所以我們需要把它移動到_Scripts這個文件夾中。這個操作很簡單,用鼠標拖動到_Scripts文件夾就好。

以上的完整操作如果有問題可以參考下面的短視頻。

Step3.雙擊在Visual Studio中打開MyVariablesScript,然後在MyVariablesScript.cs的代碼區更改其中的代碼如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class MyVariablesScript : MonoBehaviour

{

//1.定義數字類型的變量

int myIDNumber = 123456;

float myCashAmount = 180.88;

//2.定義文本類型的變量

string myName = "Steve Jobs";

//3.定義布爾類型的變量

bool isSteveJobsDead = true;

// Start is called before the first frame update

void Start()

{

//4.輸出所定義的變量

Debug.Log("My ID Number is : "+ myIDNumber);

Debug.Log("My Cash Amount is: "+ myCashAmount);

Debug.Log("My Name is: "+ myName);

Debug.Log("Is Steve Jobs dead? "+ isSteveJobsDead);

}

// Update is called once per frame

void Update()

{

}

}

在這裡按照數字編號簡單解釋下代碼的作用

1.首先要說明,在C#中,//雙斜槓的作用代表註釋,那麼什麼是註釋呢?在開發產品的時候,我們需要藉助註釋提高代碼的可讀性,從而讓接手項目的其他人,或是若干天、若干周、若干月之後的自己能看得懂當初自己的即興大作~實際上,在註釋裡面除了說明自己所寫代碼的功能,還可以寫詩,甚至寫小說,寫情書都是可以的。單行註釋用雙斜槓//就好了,如果是多行註釋,那麼就需要用/* */的形式,所有的註釋內容都在星號中間。

比如如果你喜歡的話,我們可以在代碼裡面來上這麼一長段註釋~

"

在上一章的內容中,我們成功的在Unity3d中創建了一個腳本文件,並把它關聯到了場景中的某個遊戲對象上(選擇的是MainCamera,主攝像機)。

從這一課的內容開始,我們將一起來深入瞭解C#的基本語法,首先要學習的就是C#中的變量和數據類型。前方高能預警,從這一課開始,我們將大量接觸到編程中的各種名詞概念。不過Don’t panic,只要你跟著課程一步步學習下去,相信都不是什麼難事~

還等什麼呢?讓我們開始全新的旅程吧~

03 認識Unity3d的好基友C#-C#中的變量和數據類型

在編程語言的世界裡中,每一個數值都需要存儲在某個特定的地方,我們稱之為變量。變量由變量名稱和數據類型構成。變量的數據類型決定了我們可以在其中存儲哪種類型的數據。

通過使用變量,可以讓我們的應用擁有記憶。你可以把變量看做是存儲某個數據的臨時儲物箱。正如儲物箱有各種類型和尺寸的一樣,數據也五花八門。

你不能把東西扔到儲物箱裡面然後撒手不管,因為經常會放入一些新的東西。當你的應用需要記住一些變化時,就需要把舊的數據拿出來,然後把新的數據放進去。

這就是變量(variable)的本質——變(vary)。變量就像小孩的玩具積木一樣,如圖所示。

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

我們需要把正確的形狀放到正確的儲物箱裡面。儲物箱就是變量,而它的數據類型(datatype)決定了裡面能放什麼形狀的東西。形狀就是你可以放入變量的可能數值。

我們可以隨後更改每個箱子裡面的內容,比如可以拿出藍色的方塊積木,放進紅色的方塊積木,但前提是它們都是方塊形狀的。你不能把方塊積木放到一個圓孔裡面去,因為數值的數據類型和變量的數據類型必須是匹配的。

常見的數據類型有如下幾種。

(1)數字型的變量

在C#中,數字型的變量主要包括整數(int)、單精度浮點數(float)和雙精度浮點數(double)。float和double類型變量的區別是:float是單精度類型,其有效位數是6位,佔用4個字節的存儲空間。而double是雙精度類型,有效位數是15位,佔用8個字節的存儲空間。默認情況下,小數使用double來表示。如果需要使用float,需要在末尾加上f。

比如:float myNumber = 1.23f;

在上面這行代碼中,我們定義了一個名為myNumber的變量,其類型是float(單精度浮點數),其初始值是1.23。

除了以上3種最常用的數字變量類型,在C#中還有其他類型的數字變量,其使用方法大同小異,這裡就不再一一贅述了。

(2)文本型的變量

文本型的變量主要是char和string,其中char類型變量用於保存單個字符的值,而string類型變量則用於保存字符串的值。

比如:

string playerName = "Steve Jobs";

在上面這行代碼中,我們定義了一個名為playerName的變量,其類型是string(字符串),其初始值是Steve Jobs。

也可以用 string類型保存數字:

string myString = "1";

不過此時 myString 中保存的數據是字符串"1",並不是數字1。

(3)布爾型的變量

在C#中,布爾型的變量是bool,用於保存邏輯狀態的變量,包含兩個值:true和false。之所以要用布爾這個看起來很怪的名字,是為了紀念19世紀最重要的數學家,來自英格蘭的喬治·布爾。關於布爾的故事,感興趣的童鞋可以百科一下.

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

值得一提的是,榮獲2018年圖靈獎(相當於計算機界的諾貝爾獎)的深度學習三巨頭之一Geoffrey Hinton竟然也是布爾家族的一員~

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

發明了布爾代數的George Boole正是Hinton的曾曾祖父,布爾的一個女婿是數學家和科幻作家Charles Howard Hinton,也是Hinton的曾祖父。Hinton父親的表兄妹Joan Hinton是一位核物理學家,曾參與了製造原子彈的曼哈頓計劃,後來常年定居於中國。Hinton的父親Howard Hinton是昆蟲學家,母親Margaret Clark是一名教師。布爾的傳承一路傳到Geofrey Hinton,從數學延伸到了人工智能和神經網絡領域。

在查了Hinton先生的族譜之後,才發現或許這才是真正的學術世家,“貴族”血統吧~這樣的世家比歐洲日本這些行將消亡的王室更值得每個人尊敬,比當下所謂的名媛富N代更應受到大家的推崇。

好了,八卦話題到此結束,我們來看看布爾類型變量的一個例子。

比如:

bool isPlayerDead = true;

在上面這行代碼中,我們定義了一個名為isPlayerDead的變量,其類型是bool(布爾),其初始值是真。 需要注意的是,C#是大小寫敏感的,不能將大小寫混淆。比如:

Bool bool1 = true;

該語句會報錯,因為 C#中並沒有 Bool 類型的變量,只有 bool 類型。

關於變量命名需要提醒大家的是,在C#中允許字母、數字、下劃線_出現在變量名中,但不能以數字開頭。也不允許以int,bool這些系統保留字作為變量名。

比如:

正確合理的變量命名方式:firstName、lastName、car1

不推薦的變量命名方式:firstname、lastname

錯誤的變量命名方式:1car、*name

當然,除了數字、文本和布爾3種基本類型的變量,在C#中還支持引用類型、枚舉類型等數據類型,在後續的實戰學習中我們會逐漸接觸到。

此外,C#還支持一種特殊的變量——常量。所謂的常量是指在程序運行過程中值不會發生變化的量。在聲明變量時,只需在變量的前面加上關鍵字const或readonly即可把該變量指定為一個常量。

比如:

const int constNum = 2;

readonly int readonlyNum = 3;

常量必須在聲明時賦值,且賦值後通常不允許再改變其值。如果將其他值賦給常量,編譯器就會報錯。

好了,說了這麼多的理論,我們還是需要在實踐中熟悉和掌握這些知識。

動手練習的時間到了,請大家跟隨課程的指導來自己輸入代碼熟悉一下。

創建新項目

首先要做的當然還是創建一個全新的項目了。當然,你也可以在之前項目的基礎上完成這項練習。但是為了避免一些不必要的麻煩,請按照課程的指導來操作~

打開Unity Hub,點擊New,創建一個新的項目,把它命名為MyVariables,其它設置保持默認即可。具體的操作過程這裡就不再重複了,如果還不知道怎麼創建新項目的童鞋,請返回之前的課程(最近的就是上一節~)參考一下。

在Unity編輯器的Project視圖中,右鍵單擊Assets,選擇Create-Folder,創建一個文件夾,命名為_Scripts。好了,既然這個操作要反覆進行,這裡就簡單解釋一下。首先為什麼我們要創建一個文件夾,這是因為雖然當前的項目中我們只有一個腳本文件,但是稍微大一點的項目中都可能會有多個腳本文件。為了便於管理,最好還是放在一個統一的文件夾中。

另外一個文件,為什麼我要在目錄名之前加個下劃線,其實不加也沒什麼問題。這是我個人的一個習慣。因為在稍微大型一點的項目中,會有很多個文件夾,可能還會導入來自Asset Store,或是其它的遊戲資源。這些導入的外部資源也可能會有一個名為Scripts的文件夾來組織裡面的遊戲腳本。為了將自己創建的遊戲資源和外部資源區別開,通常我會把自己創建的遊戲資源文件夾的前面添加一個下劃線。對於系統默認創建的,或是導入的外部資源,則保持原有的文件夾目錄名稱不變。

再次強調,這不是必須的,但卻是一個好的實踐方式。

在上一課的內容中,我們直接在Project視圖中創建了一個腳本文件。

而在這一課的內容中,我們將嘗試換一種方式。

Step1.在Unity編輯器的Hierarchy視圖中,右鍵單擊空白處,選擇3D Object-Cube,可以看到在Scene視圖中出現了一個立方體。

點擊選中這個遊戲對象,右鍵單擊,選擇Rename,把它更名為MyVariablesObject。當然,你也可以不更名,剩下的步驟依然是有效的。但是我習慣於讓場景中的每個遊戲對象都有一個有意義的名稱,便於後續的項目管理。

Step2.在Inspector視圖中點擊最右下角的Add Component,選擇New Script,然後給新的腳本文件更名為MyVariablesScript,點擊Create and Add確認。

這樣,我們就創建了一個新的遊戲腳本。

好了,讓我們簡單回顧一下創建遊戲腳本的方式:

1.創建一個新的遊戲對象(在上一課中是選中一個已有的遊戲對象)

2.在Inspector視圖中點擊Add Component,選擇New Script(在上一課中是選擇已經創建好的腳本)

就這麼簡單的兩步操作,就創建了一個新的遊戲腳本,並讓這個腳本跟某個遊戲對象關聯在一起,可以用來控制遊戲對象的各種行為(後面會講到)。

當然,我們剛才所創建的腳本文件MyVariablesScript在Project視圖中出現在了根目錄下,所以我們需要把它移動到_Scripts這個文件夾中。這個操作很簡單,用鼠標拖動到_Scripts文件夾就好。

以上的完整操作如果有問題可以參考下面的短視頻。

Step3.雙擊在Visual Studio中打開MyVariablesScript,然後在MyVariablesScript.cs的代碼區更改其中的代碼如下:

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class MyVariablesScript : MonoBehaviour

{

//1.定義數字類型的變量

int myIDNumber = 123456;

float myCashAmount = 180.88;

//2.定義文本類型的變量

string myName = "Steve Jobs";

//3.定義布爾類型的變量

bool isSteveJobsDead = true;

// Start is called before the first frame update

void Start()

{

//4.輸出所定義的變量

Debug.Log("My ID Number is : "+ myIDNumber);

Debug.Log("My Cash Amount is: "+ myCashAmount);

Debug.Log("My Name is: "+ myName);

Debug.Log("Is Steve Jobs dead? "+ isSteveJobsDead);

}

// Update is called once per frame

void Update()

{

}

}

在這裡按照數字編號簡單解釋下代碼的作用

1.首先要說明,在C#中,//雙斜槓的作用代表註釋,那麼什麼是註釋呢?在開發產品的時候,我們需要藉助註釋提高代碼的可讀性,從而讓接手項目的其他人,或是若干天、若干周、若干月之後的自己能看得懂當初自己的即興大作~實際上,在註釋裡面除了說明自己所寫代碼的功能,還可以寫詩,甚至寫小說,寫情書都是可以的。單行註釋用雙斜槓//就好了,如果是多行註釋,那麼就需要用/* */的形式,所有的註釋內容都在星號中間。

比如如果你喜歡的話,我們可以在代碼裡面來上這麼一長段註釋~

讓不懂編程的人愛上Unity3d遊戲開發020-C#中的變量和數據類型

接下來的兩行代碼分別定義了一個整數變量和一個浮點數變量。

2.這裡首先還是來了一句註釋,解釋下面這行代碼的作用~

接下來的一行代碼定義了一個名為myName的字符串變量,它的值是Steve Jobs!!!

3.同樣的先來一句註釋,這個大家以後要養成習慣的。有了良好的註釋習慣,其實不管是自己看代碼,還是別人看,都會輕鬆很多。

接下來的一行代碼定義了一個名為isSteveJobsDead的布爾類型變量,它的值顯然是true,因為幫主已經仙去快8年了。

4.先來一句註釋,表示接下來的幾行代碼都是輸出所定義的變量。

這裡我們用到了Debug.Log這個Unity內置的函數,它的作用就是在開發的過程中輸出調試信息。不過請不用擔心,我們的玩家是看不到這些信息的。

注意到這裡用的格式是

Debug.Log(“一個字符串“ + VariableName);

這個字符串的內容可以是任意的,+加號代表兩部分內容會連接到一起,而VariableName代表變量名所對應的值。

簡單來說,使用這個內置函數,可以在Console視圖輸出一行字符串信息,前半部分是雙引號中的字符,而後半部分則是變量的值。

代碼的其它部分沒有做任何的更改,好了,一切就緒,讓我們來測試吧。

和上一課不同的是,這裡我們不用去點擊Unity編輯器工具欄上的Play播放按鈕,而是可以直接選擇Visual Studio工具欄上的操作。

點擊Visual Studio工具欄上面的Debug,選擇Attach to Unity and Play,然後點擊右三角形狀的播放按鈕,oops,怎麼提示出錯了?~

首先要恭喜大家的是,我們成功的捕捉到了人生的第一個bug。同時也要提醒大家,這絕對不是最後一個,無論你有多麼的認真小心謹慎如履薄冰~

這個bug出現的原因是,在Unity中,所定義的float 類型變量,在數值的最後必須添加一個f。

所以提示出錯的這行代碼的正確寫法是:

float myCashAmount = 180.88f;

好了,當你添加了這個小f的時候,一切正常了。

再次點擊Visual Studio 工具欄上的播放按鈕,就會自動跳轉到Unity編輯器,切換到Console視圖,就會看到我們期待的正常輸出了。

這裡需要強調一點的是,如果我們使用Visual Studio工具欄上的Play按鈕,那麼必須保證項目和代碼中沒有錯誤和警告⚠️,否則就無法正常跳轉到Unity編輯器。

對於我們這個小項目,這個是百分百可以保證的。但是對於某些稍大的項目,經常會因為種種原因存在一些警告⚠️,這個時候就不得不老老實實通過Unity編輯器上的播放按鈕來預覽遊戲效果了~

好了,這一課的內容就到此結束了。

在這一課的內容中,我們一起認識了C#中的變量和最常用的三種數據類型,然後在實戰部分學習了創建新腳本的另外一種方法,以及使用Visual Studio來預覽遊戲效果的小技巧。

在下一課的內容中,我們將繼續瞭解C#的基本語法。

讓我們下一課再見~

"

相關推薦

推薦中...