最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Unity集換式卡牌游戲_制作第一張卡牌

2023-08-13 00:46 作者:核子nucleon  | 我要投稿

前期準(zhǔn)備

我們制作卡牌游戲之前,先得拿到一套可用的素材,這里我們使用的是卡牌游戲素材。
在上方狀態(tài)欄中,窗口下的資源商店中搜索2D Modular Cards Kit Demo,點(diǎn)擊下載即可。下載完成后,仍然是在窗口下的包管理器中,選擇我的資產(chǎn),下載后導(dǎo)入即可。


導(dǎo)入好素材后,我們還需要處理一二。選擇 Sprite Texture Folder 下的 Cards 在 Inspector 中,將 Texture Type 改為 Sprite(2D and UI)。Sprite Mode 改為 Multiple,點(diǎn)擊 Sprite Editor,點(diǎn)擊 Slice,選擇 Type 為 Automatic 即可,點(diǎn)擊 Slice,點(diǎn)擊 Apply。 當(dāng)然,這是簡單且不完美的做法的做法。
更好的做法是,選擇 Type 為 Grid By Cell Size,然后量體裁衣。但就這個(gè)素材,我已經(jīng)量好了:
像素大小 X 94 Y 126
偏移 X 17 Y 6
填充 X 34 Y 0
大家直接用就行。
到這里,素材處理完了,我們還需要制作一下 TMP 可用的字體。
在 C:\Windows\Fonts 里有很多本機(jī)字體,我們可以直接使用。 再在網(wǎng)上找一個(gè)常用,就可以開始制作字體了。這里我們直說怎么最快的做出來,不加以詳細(xì)闡釋,大家感興趣可以自行搜教程,或者我有空補(bǔ)寫一個(gè)。
我的版本是 2021.3.12 這在最上面也能看得出來。

窗口 -> TextMeshPro -> Font Asset Creator
Source Font File 選擇我們剛剛下載的字體,Character Set 選擇 Characters from File,下方的 Characters File 選擇你的字庫, Atlas Resolution 選擇 2048*2048 , padding 在 2-6左右, 然后點(diǎn)擊 Generate Font Atlas 即可。
可以參考這篇文章:https://blog.csdn.net/qq_37454669/article/details/121128100
制作好字體,拖進(jìn)你的Text一類的組件里的 Font Asset里,就可以使用了。

制作第一張卡牌-UI

終于做好前期準(zhǔn)備了,來看UI吧。
這段看視頻就好了,我就不寫了(逃

制作第一張卡牌-邏輯

這邊是有些要細(xì)說的點(diǎn)的
首先,我們新建一個(gè) Card 腳本,把里面的東西都刪掉,新建一個(gè) Card 類。這個(gè)類我們放 Card 共有的一些屬性,比如ID,Name,Description,Cost等等。還有卡牌可以發(fā)動(dòng)的技能,我們也寫上去。

SpellType 這個(gè)屬性,我們用來存儲(chǔ)卡牌的技能。做成String[]是因?yàn)椋粋€(gè)卡牌可以有多個(gè)技能,比如一個(gè)卡牌可以是[攻擊, 防御],也可以是[攻擊, 防御, 治療]。同樣,String也方便我們讀表。
同樣,一張卡也有不同的類型,比如怪獸卡,魔法卡,陷阱卡等等。我們可以用一個(gè)枚舉來表示這些類型,也可以用子類,我這里沒有使用枚舉類型,并不是說枚舉就不好,相反,枚舉類型在某些時(shí)候更加高效,但是我這里用子類,是因?yàn)槲蚁胱尨蠹铱吹阶宇惖氖褂?,同樣,這里使用子類邏輯也會(huì)更清晰。如果我們未來卡牌種類有很多,使用子類也能避免枚舉類型照顧太多屬性的問題。

我們前面制作了卡牌的UI,那么我們也需要一個(gè)腳本來控制卡牌的展示邏輯。同樣的,有時(shí)候我們在這里會(huì)使用一個(gè)靜態(tài)的 UIManager 單例。但我像把他留在后面,所以這里我們就不用單例了。

使用TMP一定要 using TMPro;
我們先聲明一些 TextMeshProUGUI 然后在 Unity 里把他們拖進(jìn) CardDisplay.
同樣,我們也需要聲明一個(gè) Card 類型的變量,用來存儲(chǔ)我們的卡牌。在Start里,我們初始化一個(gè)卡牌,否則不方便演示, card也會(huì)變成一個(gè)野指針。這是我們要極力避免的。
隨機(jī)我們開始編寫 DisplayCard() 方法。這里的邏輯很好理解————就是’有的顯示,沒的隱藏’, 當(dāng)然, 我后面使用 else 顯然是不合時(shí)宜的,我后面會(huì)修改的。

也可以寫作

看起來會(huì)更優(yōu)雅一點(diǎn)。
最好,不要忘記在Start()里面調(diào)用DisplayCard()方法,否則你的卡牌就不會(huì)顯示了。

本文作于2023-08-12,首發(fā)于個(gè)人博客https://rdququ.top/


Unity集換式卡牌游戲_制作第一張卡牌的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
华阴市| 西充县| 石阡县| 乌兰县| 蕉岭县| 平顶山市| 陵水| 吴忠市| 辽阳县| 阜平县| 万全县| 通渭县| 清新县| 莱州市| 河间市| 西宁市| 阿拉善右旗| 法库县| 福贡县| 临泽县| 阿勒泰市| 尚志市| 临夏县| 尼勒克县| 洮南市| 甘德县| 科技| 木兰县| 衢州市| 长寿区| 康平县| 霸州市| 彭阳县| 亳州市| 汉中市| 寻甸| 甘肃省| 南充市| 交口县| 松滋市| 澄江县|