更新於 2024/05/07閱讀時間約 9 分鐘

2024 虛擬實境 x 人因設計 05unity C#語法教學入門_2

    完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。

    又講到變數?

    在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料,實現參數化設計,從而創建出更加靈活和可配置的遊戲。

    變數扮演著不可或缺的角色,為遊戲開發提供了必要的動態性和靈活性。


    常見的變數資料型別

    在Unity中,常見的變數類型包括:

    • 整數(Integer):整數類型使用int關鍵字聲明,用於儲存整數值。例如玩家的生命值、分數等。
    • 浮點數(Floating Point):浮點數類型使用float關鍵字聲明。用於儲存帶有小數部分的數值。例如物體的位置、移動速度等。
    • 布林值(Boolean):布林值類型使用bool關鍵字聲明,用於儲存邏輯值。例如開關狀態、觸發器是否被觸發等。
    • 字符串(String):字符串類型使用string關鍵字聲明,用於儲存文本數據。例如遊戲中的對話、UI文本等。
    • 向量(Vector):常用的向量類型包括二維向量Vector2和三維向量Vector3用於表示二維或三維空間中的位置、方向等。

    int 名稱 = 1; //整數

    float 名稱 = 5.214f; //浮點數

    bool 名稱 = true; //布林值

    string 名稱 = "你好(這邊打什麼字符號都行)"; //字串

    這些是Unity中常用的變數類型,它們可以滿足遊戲開發中的各種需求,並且能夠幫助開發者有效地管理和處理遊戲中的數據。當然除了這些最基本的資料型別之外,還有其他很多種型別,像是long(可以存放更大的整數)、double(可以存放更多小數點後位數的浮點數)等等,等到有需要再去了解就可以了




    變數是什麼 : 用來表示值的名稱。顧名思義,存在變數裡的值是可以被改變的。

    宣告方式:資料型別 變數名稱 = 內容。注意,程式語言裡的等號不是等於的概念,而是把等號右邊賦值給左邊的概念。a = b → 賦予a一個b的值,或者是說,把b存進a裡。

    類別、結構、靜態變數、陳列元素中的變數宣告時若無指派初值,會自動給予初始值

    數字型別初始值為0



    現在我想來點 數學 :)

    有數字,當然免不了一些數學

    先來看一下運算式、運算元、運算子的關係圖:


    換算成數學說法來看,運算式(expression)就是算式,運算元(operand)就是要被加減乘除的東西,運算子(operator)就是加減乘除以及其他的運算符號好朋友們!

    C#有哪一些運算子?

    根據運算子的功能,可以分為以下幾種類型:

    1. 算術運算子 +-*/

    2. 關係運算子(等號比較運算子、比較運算子) ><=

    3. 邏輯運算子、條件邏輯運算子

    4. 位元運算子(二進位制) 01100101

    5. 移位運算子(二進位制) 12120211

    6. 指定運算子

    7. 條件運算子


    1.算術運算子

    分為一元運算子及二元運算子,先講最容易理解的二元運算子

    + .... 加左邊加右邊 .... ex 3+2=5

    - .... 減左邊減右邊 .... ex 3-2=1

    * .... 乘左邊乘以右邊 .... ex 3 * 2=6

    / .... 除左邊除以右邊 .... ex 3/2=1.5(用float或是double會顯示1.5,用int會顯示1)

    % .... 取餘數左邊除以右邊並取其餘數 .... ex 3%2=1(3除以2餘1)

    #加法說明:加法也可以用在字串相加


    一元運算子

    a++ .... 自己後加一 .... a先是自己,然後自己再+1。

    ++a .... 自己先加一 .... a先加1後再做後續。

    a-- .... 自己後減一 .... a先是自己,然後自己再-1。

    --a .... 自己先減一 .... a先減1後再做後續。


    2.關係運算子(等號比較運算子、比較運算子)

    為二元運算子,運算後傳回的結果為布林值:True或False

    運算子 意義 數學式

    == .... 相等 .... A = B

    != .... 不相等 .... A ≠ B

    > .... 大於 .... A > B

    < .... 小於 .... A < B

    >= .... 大於或等於 .... A≧B

    <= .... 小於或等於 .... A≦B

    用法就跟數學上的意義是相同的喔~


    3. 邏輯運算子、條件邏輯運算子

    運算子 意義 說明

    ! .... 否定 .... "非"(not)的意思。若A本身為真,!A為假。若A本身為假,!A為真

    & .... 且(And) .... A & B,當A、B都為真時,結果才會為真

    | .... 或(Or) .... A | B,當A、B其中一個為真時,結果為真

    && .... 且 .... A&& B,當A、B都為真時,結果才會為真

    || .... 或 .... A || B,當A、B其中一個為真時,結果為真

    ^ .... XOr .... 邏輯互斥


    欸等等,這個表裡面好像有兩組東西很像耶,&還有&&,|還有||差在哪?

    只有一個的|還有&,在進行判斷時,前後兩個運算元都會評估

    兩個的||和&&,在進行判斷時,只有在必要時才會評估右邊的運算元


    假 & 真:已經知道第一個是假了,&還是會求出前後運算元的值才進行判斷

    假 && 真:第一個已經是假了,結果必定為假,&&不用求出右邊運算元的值就會進行判斷

    所以在進行判斷時||跟&&是比較有效率的,比較重要的比較值就放前面囉~


    6. 指定運算子

    運算子 說明 例子

    = .... 把右方指定給左方 .... a=5;一直在用XD

    += .... 把左方加右方後再指定給左方 .... a+=5;->等同於a=a+5的意思

    -= .... 把左方減右方後再指定給左方 .... a-=5;->等同於a=a-5的意思

    *= .... 把左方乘右方後再指定給左方 .... a*=5;->等同於a=a*5的意思

    /= .... 把左方除以右方後再指定給左方 .... a/=5;->等同於a=a/5的意思


    7. 條件運算子

    再加入一些if 之類的條件

    來試個題目看看 加減乘除



    Static v.s. Public v.s. Private ?

    在程式多少會看到Static、Public、Private 阿這些又是什麼呢?我們往下來看..

    他們通常在程式語言C#中用於定義類(屬性、方法)的訪問修飾符,以指定這些變數對其他程式碼的可見性和可存取性。你也可以想像是「使用權限」那樣的東西,用來告訴unity你要指派的變數或其他程式的使用權限。


    這裡是它們的用法:

    Static:表示該成員屬於類本身,而不是屬於該類的個別實例。表示可以直接使用類名來訪問靜態成員,而不需要實例化該類。靜態成員在整個應用程序中只有一個副本,因此它們可以用於存儲對象間共享的資料或方法。

    Public:表示該成員對於同一個程式中的所有類都是可見的。換句話說,它可以在任何地方被存取,包括其他類和程式碼文件。通常,對於需要從外部存取的成員(如公共方法、屬性)。

    Private:表示該成員僅對定義它的類可見和可訪問。外部類無法直接訪問或修改私有成員,只能通過類的公有方法間接訪問。在Unity中,私有成員通常用於內部操作或邏輯,防止外部對象直接訪問和修改。有助於保持腳本的封裝性和安全性。

    表示該成員只能在定義它的類內部訪問,對於外部程式碼是不可見的。這是最常見的訪問修飾符,並且是C#中的預設值。私有成員只能被同一類中的其他成員存取。


    Static (全域) v.s. Public (公用) v.s. Private(私人)

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.