Unity C# | Interface & Damage System (easy)

更新 發佈閱讀 6 分鐘

一、前言

  這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。

二、介面 | Interface

  我在撰寫程式的這段時間中,其實我都沒有使用介面,但依然認為這是必須要學習的知識,因為實在有太多地方講述介面的用處了,正式學習後,我更加堅定這股想法了。

a. 簡介

  定義一個規範,讓之後的程式腳本在實作時遵守結構,並且實作出各自不同的細節,其他程式也能通過抓取介面,來取得定義好的屬性與函式。

b. 抽象

  這是我接觸的第一個抽象資料型態,我發現抽象能處理的事情會比實作還要多不少,不過在前期的規劃與流程中,會複雜很多並且難以理解。

  抽象的資料型態,除了 Interface 以外,還有 Abstract 、 Virtual 這兩個資料型態有印象可以學習,搜尋資料後,還有 Generic 、Delegate 可以學習,期中委派已經有了解部分了。

c. 用途

  在遊戲設計中,我自己判斷介面的用途偏向於抓取,不過相較於普通的抓取物件來說,介面的便利性與效能都更加優秀,唯一的問題可能是需要規劃,這容易造成後期不好維護。

三、原理說明

  接下來會從名稱與特色說明 Interface 的運作原理。

a. 介面與接口

raw-image

  這是我繪製的示意圖,可以簡單理解介面的原理:第一點,只要實作同一個介面的程式腳本,裡面一定會出現相同的資料結構;第二點,其他程式腳本能以此介面名稱為接口,不需要抓取整個物件,也不需要知道其他程式內容。

b. 抽象與實作

  這兩個概念最大的差異,就是能不能直接指定到一個明確的物件,以介面這個資料型態來解釋,就是它沒有明確的某一個功能,因此能套用到多個物件的程式腳本中。

  在程式設計中,會明確到哪一個變數會有哪些變量,因此實作是非常詳細的一種資料結構,也就不容易套用到各種情況了,不過實作因為明確清晰,在程式設計的過程中也相對直觀。

c. 不問其身分

  介面的特色,就是「不問身份,只問簽章」的概念,簽章的概念可以在微軟官方的一篇文章找到,簡單來說,簽章是一種規範,只要符合規範的對象就會娶得簽章。

  換句話說,只要符合座號(屬性)與學生(函式)的對象,在判斷是不是叫做台灣大學的介面時偷會通過,不需要每一所大學都指定一次,也不需要過問每個大學其他的功能。

《Microsoft API | 明確介面實作 (C# 程式設計手冊)》

四、介面的使用流程

  接下來會講述如何使用 Interface 這個資料結構。

a. 創建 Interface 資料結構

  首先,創建一個 Interface,因為跟類別(Class)的結構相同,所以只需要公有或私有以及資料結構,再搭配一個程式碼區塊就可以了。

b. 定義屬性

  接下來,定義一個擁有讀寫設定的屬性(property),關於讀跟寫的介紹,在之前的一篇文章我有介紹,如果了解屬性的概念,直接撰寫自己需要的屬性有哪些即可。

《Unity C# | 讀(get)和寫(set)概述 & 基本運用》

c. 定義函式

  在這裡定義函示名稱即可,一樣依照需求安排數量。

d. 實作介面

  接下來,打開想要實作介面的類別,並且在 Unity 內建的實作類別 Monobehaviour 後面,打上一個「,」後添加自己撰寫的介面名稱。

e. 履行簽章

  隨後,在這個程式腳本中開始履行簽章,把前面定義好的屬性以及函式一一撰寫出來,屬性就要用讀跟寫與自己私有變數的關係,這些變數通常會在前面添加「_(底線)」用於表達這是用於介面的變數,函式的話,只要名稱正確,其他就跟宣告其他函式相同。

f. 完成

  這樣就完成介面的創建與實作了,在其他腳本就可以像是呼叫某個物件一樣來呼叫介面,並且可以抓取實作後介面的屬性與函式,進行兩個資訊的交換,不用一一指定。

五、後記

  這篇文章對我來說,是一個跨階段的成長,因為我更了解怎麼介紹一個新的概念,並且能寫出完整的製作流程,學習到了一些新的名詞以後,未來我也可以藉由這篇文章來複習,對於其他新手程式設計師,也有足夠的用處。

a. ChatGPT 與 Google 兩種蒐尋軟體的結合

  在撰寫這篇文章的時候,我的資料參考除了微軟的官方,我還有去詢問GPT我應該要怎麼撰寫,我聽到介面是實作而不是繼承的時候,我以為人工智慧終於出錯了,直到我找到官方文件,也是叫他實作,或許這種也稱為繼承?

b. 保持質疑的態度

  學習知識的過程,最重要的是保持質疑的態度,先不說會不會讓你找到正確答案,但在這個過程中絕對可以接觸更多的相關知識,也能理解更多彼此相互印證的資訊。

c. 重新開始經營 Youtube 了

  感謝你看完這篇文章,不知道它對你的幫助有多少呢?這是我在學習介面時撰寫的程式碼與測試內容,如果想了解更具體的介面測試影片,可以參考下面這部影片。


《Unity C# | Interface & Damage System (Easy)》

留言
avatar-img
瓶裝雪的沙龍
117會員
247內容數
你好,我是瓶裝雪!我是一名遊戲設計師!
瓶裝雪的沙龍的其他內容
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/09/22
魔火術師是第三人稱動作射擊遊戲,屬於專題畢業製作,在畢業組成新的團隊後優化並上架。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2024/01/26
這篇文章將會講述虛擬(virtual)與覆蓋(override)的簡易使用方式。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
2023/12/29
講述遊戲設計從新手到專業的發展方向。
Thumbnail
看更多
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
Interface我們就將之想像成是一種標準化的規範,在產品還沒開發出來之前,我們心中想必已經有個藍圖,嗯…,這個功能需要什麼樣的功能,這時候就可以來制定介面,以「設計」為出發點而後再進入「實作」,如此一來我們在設計階段就能發現一些盲點,減少經過實作過程才發現的窘境,節省繁複修改的成本,而且介面定義
Thumbnail
Interface我們就將之想像成是一種標準化的規範,在產品還沒開發出來之前,我們心中想必已經有個藍圖,嗯…,這個功能需要什麼樣的功能,這時候就可以來制定介面,以「設計」為出發點而後再進入「實作」,如此一來我們在設計階段就能發現一些盲點,減少經過實作過程才發現的窘境,節省繁複修改的成本,而且介面定義
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
Thumbnail
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
這篇文章將會講述使用 C# 的類( Class ) 來讓欄位模組(module)化。
Thumbnail
C# 介面 ( C# Interface ) – (C#教學) – 介面就是類別的接口, 就好像在電插一樣, 不同的電器有同一類與電力的接口. 要編程就像一個布局, 當引用一個class時, 會引用不同的method, property. 如果method的class可以轉換, 就大大簡化了編程.
Thumbnail
C# 介面 ( C# Interface ) – (C#教學) – 介面就是類別的接口, 就好像在電插一樣, 不同的電器有同一類與電力的接口. 要編程就像一個布局, 當引用一個class時, 會引用不同的method, property. 如果method的class可以轉換, 就大大簡化了編程.
Thumbnail
abstract class = 抽象類別 interface = 介面 抽象類別與介面都無法建立物件。 1. 使用abstract關鍵字來建立抽象類別,interface關鍵字建立介面。 interface只能繼承interface,且可以繼承多個:
Thumbnail
abstract class = 抽象類別 interface = 介面 抽象類別與介面都無法建立物件。 1. 使用abstract關鍵字來建立抽象類別,interface關鍵字建立介面。 interface只能繼承interface,且可以繼承多個:
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
本篇文章將會介紹C#的基礎構成和字串的使用,若想要更詳細的教學,可以參考前一篇文章,前往Microsoft官方教學學習。
Thumbnail
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
Thumbnail
這篇文章主要介紹存取子讀(get)和寫(set)的概述,並且簡單介紹基本的使用方法以及其他程式呼叫範例。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
Thumbnail
本文以實際的程式碼來說明Value Type和Reference Type的差異,並介紹實用的除錯工具。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News