游戲開發(fā)學(xué)習(xí) Day23:關(guān)卡切換和關(guān)卡結(jié)束 UI
2023-02-16 09:10 作者:WingST-落羽敬齋 | 我要投稿
2023 年 2 月 16 日
一、關(guān)卡切換
實(shí)現(xiàn)了關(guān)卡切換,先做了一個(gè)循環(huán)。

關(guān)卡管理器,導(dǎo)出一個(gè) PackedScene 類型的 Array,然后把已有的關(guān)卡放進(jìn)來,以便切換使用。

添加腳本,默認(rèn)加載第一關(guān),切換關(guān)卡時(shí),把下一關(guān)替換到當(dāng)前場(chǎng)景中。并且有一個(gè)容錯(cuò)機(jī)制,當(dāng)關(guān)卡索引大于關(guān)卡總數(shù)時(shí),回到第一關(guān)。

在項(xiàng)目設(shè)置中,設(shè)置初始加載的場(chǎng)景,這是在主場(chǎng)景加載之后要加載的。

二、關(guān)卡結(jié)束 UI
關(guān)卡結(jié)束有獲勝提示了。

也是創(chuàng)建一個(gè) Canvas,然后 MarginContainer 用于布局,VBoxContainer 用于單列排版,再加上 Label 標(biāo)簽和 Button 按鈕,改一下字體并添加文字,設(shè)置 SizeFlags 中的對(duì)齊方式。

添加腳本,默認(rèn)加載監(jiān)聽按鈕按下的事件,按下后,讓關(guān)卡管理器加一關(guān)。

還有個(gè)小細(xì)節(jié),就是需要在 BaseLevel 中,把 LevelComplete 場(chǎng)景加載進(jìn)去,獲勝之后先加載這個(gè)場(chǎng)景,而不是之前的切換到下一關(guān)。
