Unity3D教程:回合制游戏实现
一、場景布置
首先是簡單的場景布置,在3D部分很簡單。就幾個簡單的基本組件,在一個Plane上面放2個Cube,并且上不同顏色的純色Material。唯一需要大家注意的是,請將兩個Cube改好名,以免到時候編程不知道哪個跟哪個。
其次是UGUI的布置。左下角是一個名為ActionPanel的Panel,旗下有兩個按鈕Attack Button和Defend Button,一會兒ActionPanel將被控制,而按鈕Attack Button和Defend Button則將賦予點擊事件。在這個ActionPanel的下方則是一個名為PlayerHPinfo的Text,同樣會被腳本控制,用于顯示血量等信息。
至于右上角是個動態(tài)文本的滾動區(qū)域WarinfoPanel,里面放置的一個WarinfoText用于顯示戰(zhàn)斗信息的文本,這里需要注意上Mask組件的時候去除Show Mask Graphic,不然WarinfoText顯示不出來。而在其下方,則是一個退出戰(zhàn)斗的按鈕ExitButton,當然這個東西,在實際游戲里面完全可以不要,自動切換回戰(zhàn)斗前的場景。
并同時新建一個空物體WarControl,賦予腳本WarControl.cs。
二、腳本編寫
由于Update()在每一幀的刷新都被執(zhí)行的,在1秒就30幀的瞬間,Update()里面的代碼不讀完,這游戲就被卡死,所以Update()這個可視為主線程的函數,只承擔以下簡單任務,時刻在判斷HP是否見底。
而攻擊表演這些要交代給玩家看的東西,至少要占用1s的技能表演,我們則通過協(xié)程Coroutine完成。協(xié)程,其實也就是Unity3D的子線程,將通過按鈕點擊時間來創(chuàng)建。各個按鈕點擊之后,具體的思想如下圖表示,其中實線表示玩家點擊了“攻擊按鈕”,虛線則表示玩家點擊了“防御按鈕”。
這里涉及到掛起0.5s~0.9s的東西,因此,只能寫在協(xié)程里面完成的,不可能寫在Update()里面,不然這游戲絕對卡死。
這里的攻擊動畫,用到了iTween實現(xiàn),具體可以參考《【iTween】利用協(xié)程完成多個動作、iTween的動作序列》。同時,這里的玩家死亡和敵人死亡其實也可以加入一個立方體碎裂的動畫,讓游戲更加生動。
?
同時賦予Attack_Button、Defend_Button和ExitButton,三個按鈕點擊事件分別為WarControl.cs的AttackButtonOnclick()、DefendButtonOnclick()和ExitButtonOnclick()則大功告成!
?
更多unity2018的功能介紹請到paws3d學習中心查找。鏈接https://www.paws3d.com/learn/,也可以加入unity學習討論群935714213
近期更有資深開發(fā)人士直播分享unity開發(fā)經驗,詳情請進入官網或加入QQ群了解
總結
以上是生活随笔為你收集整理的Unity3D教程:回合制游戏实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web 手机淘宝
- 下一篇: CIO40: 2020年IT人员如何借机