Unity C# | Design Pattern

閱讀時間約 3 分鐘

一、前言

  這篇文章將會簡單介紹物件導向的設計模式,以及學習這項技術需要有哪些先備知識,學習才會比較順利。

二、設計模式

  在物件導向中,除了最基本的五大原則以外,其實還有一知名的概念,那就是設計模式(Design Pattern),它能運用到很多層面。

1. 解決一再出現的問題

  許多程式設計的問題都是類似的問題,例如場景切換與武器切換,這兩個雖然在做不同的事情,但都可以同時使用一個叫做狀態模式的設計模式,因為它們的解題思路是相同的概念。
  當程式設計的問題一再出現以後,這皆問題就會有一種慣用的解法或通用的道理,而我們也可以反推回去,學習一些常常使用的解法再進行修改,讓它可以解決多種不同的問題。

2. 解決問題的方案及核心關鍵

  設計模式並不是解決某個特定的問題,而是某些通用的概念,也因此這會是一個相當抽象的知識,因此學習的時候搭配某些固定的問題,或是某些範例,對於學習設計模式會是有幫助的做法。
  在設計模式中,這些拿來做為範例與教學的模式,都是精簡到不能再精簡的內容,依據不同的問題要增加不同的程式來進行搭配,它們是用於解決問題的核心架構。

3. 可以重複使用的解決方案

  這些設計模式能套用到不同專案上面,除非運用設計模式後,又添加了許多寫死的程式,否則大多數的程式腳本在細心維護的情況下,是可以移動到其他專案使用。
  其實不管有沒有學習物件導向的設計思路,在撰寫程式的過程中,或多或少都會使用到一些設計模式,因為事先有問題才出現解決通則,而當你解決問題的時候,也自然會接近大家常用的解題方法。

三、學習前提

  這篇文章除了介紹設計模式以外,還會講述一些學習這份知識的前提,像我目前只是勉強達成能閱讀的門檻,但熟悉設計模式的過程中依然會有很多新的問題產生。

1. 撰寫過完整的程式

  首先,當然是已經有寫過程式的經驗,這個經驗多寡會決定學習設計模式的速度,對大多數的大學生而言,例如遊戲設計,只要有經手兩到三個遊戲專案程式,那就可以試著去了解設計模式。

2. 熟悉UML類圖

  在大多數的設計模式教學中,無論是書本還是網路上的資源,都會搭配UML圖來進行介紹,這是因為UML圖是用來講述程式架構的一種可視化程式設計的製圖技術,非常適合用來講述設計模式。
  這也是一個大型專案常使用到的技術,甚至會獨立出一個專門職業來繪製UML圖的設計,給予其他程式員空間,花費更多時間開發產品與專研程式技術。

3. 熟悉介面、抽象類別、虛擬

  這是一個隱性的必要內容,因為設計模式牽涉到解決問題的解法,屬於較為高階的程式設計內容,學習設計模式可能需要了解介面(interface)、抽象類別(abstract)、虛擬(Vitrual)這幾個抽象的概念。
  這些抽象概念在學習設計模式的過程中會頻繁看到,並且作為眾多設計模式運作的基礎,有不少設計模式的核心概念其實就是這幾個抽象概念的應用,並且針對特定的問題而已。

四、後記

  這篇文章只是作為一個介紹,我不太確定自己是否能學習好設計模式,而且目前沒有太必要的需求,更多的是模仿網路上的學習資源即可,因此未來不一定會撰寫太多設計模式的東西。
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
104會員
247內容數
對設計師如何成長為設計師好奇嗎? 2020年九月,我進入大學學習當一位設計師,從開始到沉寂,再到重燃熱忱,我將在方格子紀錄我的成長歷程、理念、心情,分享我在這段旅程中所經歷的故事。
留言0
查看全部
發表第一個留言支持創作者!
瓶裝雪的沙龍 的其他內容
這篇文章將會講述最近的一個程式設計體悟,並且分享近期要參加的獨立遊戲製作者聚會,會展示課程的其中一個作品。
這篇文章將會分享與老師討論,在遊戲設計中設計元素之間的比重與遊戲要注重的設計重點或賣點。
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
這篇文章將會快速介紹非同步函式(Async / Await)的簡易使用方式。
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
這篇文章將會講述最近的一個程式設計體悟,並且分享近期要參加的獨立遊戲製作者聚會,會展示課程的其中一個作品。
這篇文章將會分享與老師討論,在遊戲設計中設計元素之間的比重與遊戲要注重的設計重點或賣點。
這篇文章將會介紹 Unity Input System,這是一個適用於不同平台切換的官方系統,用於玩家按鍵輸入與不同控制器的操作。
這篇文章將會快速介紹非同步函式(Async / Await)的簡易使用方式。
這篇文章將會介紹 UGUI ,以及如何使用程式碼控制 UGUI 的座標。
這篇文章將會講述 Unity C# 中關於 Interface (介面/接口)的基本介紹以及原理說明,最後提供完整的使用流程。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
最近ChatGPT-4o的發布引起了我的注意,又在Youtube看上見有人教學如何用ChatGPT設計屬於自己的家教,被他的能力震撼到的我一頭熱就訂閱了plus版然後馬上設計了一個自己的家教。最一開始的時候我只有把它用來學習語言的輔助,但用著用著忽然想到:「如果我把它用來引導我學習我沒有學過的領域呢
Thumbnail
遊戲引擎開發商 Unity 一直是我感覺很有發展潛力的企業,《原神》、《王者榮耀》等明星遊戲都是透過其引擎所建構,在手遊開發領域,擁有絕對統治力。然而,營運實績與線圖走勢卻不是如此,近 8 季毛利成長率有 4 季為負,1Q24 營運收入是近 8 季來最低值,-$375M…
Thumbnail
完成了Debug.log()的測試,接著還是要跟各位簡單講一下C#的一些規則,之後看程式會(比較)看得懂。 又講到變數? 在Unity中,變數是重要的工具,用來儲存和管理資料。讓開發者能夠靈活調整遊戲的行為和性能,減少代碼的重複性,使得遊戲開發更加高效和簡潔。透過使用變數,開發者可以輕鬆修改資料
Thumbnail
前言 這是紀錄本人學習Unity C#時的筆記,希望讓自己能夠整理思緒,方便記憶。 因為是新手自學的關係,也很有可能有誤解或錯誤的地方,請見諒… 類別Class 創造類別之後就可以持續使用創建的類別來創建物件,以武器為例,在遊戲裡有不同的武器,但是他們的屬性是一樣的,我們就可以在一個類別裡面設定不同
Thumbnail
Unity (美股代號:U) 是全球最大的遊戲製作平台與龍頭引擎。不過股價自高點滑落並盤據20-30元已經有一段時間。此次財報非常樂觀,值得一看。
Thumbnail
開啟Xampp伺服器,並啟動 apache & mysql mysql建立 開啟Unity 建立 Script toPhp.cs Unity物件 toWeb物件設定 此處需特別留意設定 UItext & MYtext ,否則會出現物件未設定的Null錯誤 Button 設定 test.php con
  透過Unity平台開發出來的遊戲,比較廣為人知,例如憤怒鳥和寶可夢。Unity 的遊戲開發技術,可以刺激遊戲產業,更朝氣蓬勃有效率地開發新遊戲用戶透過遊戲平台,就可以進入元宇宙的世界!