Unity UI程式設計,教你一種更好組織UI的方法

2021-09-24 15:23:21 字數 1315 閱讀 9190

我參加的第乙個商業專案是第乙個人稱拼圖遊戲。在很大程度上,我編寫了一整個關卡的編輯器。你能夠想象,ui是其中很大的一部分。我曩昔完成ui的辦法並不是乙個很好的完成。因而,關於我的下乙個專案,我決定開發乙個更好的系統,這便是我想要的。

我首先想到的是,應該有乙個類來管理所有的元素。所以我把它命名為uimanager。這是僅有乙個與ui相關的類,其他元件將知道這一點。它會將懇求的ui元素顯示在螢幕上,並通知他們該做什麼。由於每次只有乙個uimanager,我把它變成了單例。

為了方便地在不同的ui狀況之間切換(主選單、遊戲、暫停等),我決定為每個使用者建立乙個面板。在我的關卡中,我有了mainmenupanel,ingamepanel和pausepanel。正如我上面提到的,uimanager只會通知這些面板該做什麼。知道怎麼去做應該是這些面板的作業。出於這個原因,為每個面板建立乙個指令碼似乎是個好主意。別的,我在轉換過程中建立了乙個列舉。

現在我有乙個uimanager類,它在面板之間切換,有時通知它們該做什麼。這便是它的樣子:

現在,我能夠很容易地阻隔每個面板的功能。假如我需求從乙個特定的面板呼叫乙個特定的辦法,它也會通過uimanager來完成。例如,讓咱們建立乙個「fadepanel」,它將擔任在懇求中淡入和淡出。下面是這個特定面板的**:

現在,咱們能夠增加幾行**從uimanager中呼叫 fade() 辦法:

為了呼叫淡出作用,我只需求在uimanager上呼叫fade() 辦法就能夠。

在最近的幾個專案中,我一直在運用這個設計,到目前為止,我發現它十分有用、有安排並且易於除錯。假如這是一種欠好的做法,或者能夠改進的話,請通知我。假如您知道的話,我想學習一種更好的安排ui的辦法。

程式設計是一種藝術

感言 作為一名技術黨,我們要熱愛我們的技術,並願意把它當作一生事業去做。我一直有一句格言 程式設計是一種藝術 不管什麼專案,我都會在效能 風格 解題思路上下足功夫。每天我都會對今天所遇到問題進行歸納總結,並儲存到自己構建的知識庫中。如果有意思的問題,同樣也會發布到部落格上去,讓同行的戰友不再為此煩惱...

在一種語言上程式設計和深入一種語言去程式設計的區別

今天在論壇看到乙個帖子 不錯,我一開始就是從c語言過來的,如果有電子方面的基礎的話,我就想搞硬體開發了,現在搞c 有點像 拿來主義 基本不知道其所以然,還是寫c 的時候心最靜,其實,我現在用 類 就是把一些功能相似的函式放在一起搞成乙個類,然後使用,還不如c的函式來的直接,一開始寫程式的時候就接收的...

在一種語言上程式設計和深入一種語言去程式設計的區別

今天在論壇看到乙個帖子 不錯,我一開始就是從c語言過來的,如果有電子方面的基礎的話,我就想搞硬體開發了,現在搞c 有點像 拿來主義 基本不知道其所以然,還是寫c 的時候心最靜,其實,我現在用 類 就是把一些功能相似的函式放在一起搞成乙個類,然後使用,還不如c的函式來的直接,一開始寫程式的時候就接收的...