【校園生活】0基礎記錄遊戲開發#6


3樓貓 發佈時間:2024-01-14 13:36:46 作者:依卞 Language

非常感謝siki學院的這一套教程,短短九天內我已經摸上了unity了,對於unity和c#這兩者也有了一定的基礎,能看懂unity的一部分代碼,這意味著能夠解析一部分功能迄今為止第六期我已經把這一套零基礎的課程做完了,在成品裡面也添加了自己的小東西,體會到了遊戲開發的樂趣,希望在後來別的項目課程學習中能夠更進一步


那麼首先請出我們的今日板繪產品

【校園生活】0基礎記錄遊戲開發#6-第0張

我也在盡力還原了(這個手是開掛畫出來的,因為我畫手真的是災難,災難啊這張圖的原圖好像是電妹的二創電妹確實可愛捏很遺憾成為了我的筆下亡魂


今日最後一點點unity的遊戲開發細節修理

【校園生活】0基礎記錄遊戲開發#6-第1張

文字對話框顯示

就像是galgame一樣出現對話框,用於劇情推動和npc交互

【校園生活】0基礎記錄遊戲開發#6-第2張

對話內容代碼

對話框的顯示就是基礎的UI對象把對話框的貼圖和人物貼圖貼上去但是對話框的內容部分需要自己來自定義,因為跟隨鼠標點擊“按鈕”類的對象,需要不斷更新我們的對話內容,所以我們需要定義出一整個對話內容的數組,分段分行來展示對話內容。

【校園生活】0基礎記錄遊戲開發#6-第3張

怪物消滅

在打敗怪物之後,我們需要解決一個小bug,就是把被消滅的怪物刪除掉,不然這個被消滅的怪物就仍舊會存在地圖中

【校園生活】0基礎記錄遊戲開發#6-第4張

刪除怪物的相關代碼

【校園生活】0基礎記錄遊戲開發#6-第5張

打敗怪物的相關代碼

把打敗(當怪物血量為0後)和清除(使用destroy刪除當前對象)兩個部分的代碼串起來後,便能實現這個功能。

第三個細節就是音樂,unity中的audio類中就可以簡單調用你準備好的音樂(忘記截圖了)用audiocilp在當前場景定義出音樂的對象,將準備好的音樂與這些對象一一對應,設置好觸發的條件後,在audio組件中設置音樂播放的屬性,循環或者一進遊戲就開始播放等等

至此所有基礎的部件都已經記錄完畢,大概按照這幾個板塊來細分,就可以解剖一個遊戲了

以下是補充代碼部分(本人基於c和c++知識的角度看待c#後學到的東西)

1.單例的使用

【校園生活】0基礎記錄遊戲開發#6-第6張

單例的應用

在c或者c++中,我們為了可以使用其他類內或結構體的屬性或者方法,出於封裝性的考慮,需要定義出這個類的對象或者子類甚至是友元,單例的作用其實大同小異但是又恰恰相反,你可以在需要定義對象的類中,使用 gamemanager instance來使這個類單例化,類中的start函數中調用單例本身給類賦值。這麼做的用處就是我們可以在其他類中不需要定義對象也可以調用單例中的相關屬性和方法。其實這類似於從讓別人從外部訪問,變成了自己主動打開讓別人訪問(我在說什麼很糟糕的東西)

如上圖所示,框中的代碼就是直接調用了其他類中的函數(當然需要public的訪問層級)並加以應用。

2.函數後綴的應用

首先聲明這個用法不一定叫這個名字,只是我也不知道它具體叫什麼,就索性按照自己的喊法來了

【校園生活】0基礎記錄遊戲開發#6-第7張

後綴使用

如上圖所示,這是一個函數,但也是兩個函數(霧

函數的結束後原本是;但是後綴使用的方法就是在已經執行完的函數後用.OnComplete()調用出後綴函數,()中一般也是(()=>{})的形式,在{}裡面寫入別的函數,代表著在上一句(即後綴之前的函數調用完後)再執行{}內的函數,有嚴格的先後順序。


到這裡就先給自己休息兩天打打遊戲了,過幾天會繼續學習新的案例並在小黑盒跟大家分享一下我的學習狀況


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com