unity遊戲項目實踐-2d戰旗策略遊戲

2021-02-16 如翼ByeBye

遊戲項目復現直接使用的是B站的up主-次元生還者的戰旗欄目

連結如下

https://www.bilibili.com/video/BV1uZ4y1W7rv

以下復現總結也按照up主的視頻分欄介紹,即

棋盤

    棋盤部分即利用sprite直接ctrl+D複製,然後按住ctrl鍵平移即可

棋盤分為Cell(背景部分)和Block(障礙部分)兩類,通過添加兩個Tag區分,同理為了能夠實現滑鼠選中的功能,兩者都需要加上碰撞體Box Collider 2D。

注意:通過工具欄的Edit->Grid and Snap Setting->Increment Snap的Move選項可以修改平移的距離,默認為0.25,這裡修改成1。

    Cell和Block組成地圖時,每個位置即非Cell即Block,不能出現Block和Cell重疊的情況,否則選中的單元要看排列的圖層順序。

    滑鼠選中Cell後在控制臺輸出位置信息的代碼如下,使用預製件prefabs形式組成地圖的形式個人一開始感覺不太方便,不如TileMap來得快,於是使用TileMap的形式重新搭建了一遍地圖,不過在點擊輸出每個格子的位置時需要做轉化。

void OnMouseDown()    {        Debug.Log("Pressed " + this.tag + " At Position: " + transform.position.x + "," + transform.position.y);                                                                                                    }

棋子

    棋子開始加入遊戲主角,首先戰旗策略遊戲的角色基本功能是點擊選中,顯示移動範圍,攻擊範圍,移動,攻擊,死亡。

    對於點擊選中功能在棋子製作過程中同樣需要添加2D碰撞體,加入Piece標籤做作區分,對應攻擊死亡功能加入血量、最大生命值,攻擊和護甲。

注意:角色的Z位置設置為-1,否則在Cell和Piece重疊時無法正確選中Piece。

    顯示移動範圍和攻擊範圍則需要利用Cell單元格加入兩個不同顏色表示的sprite來實現。

    顯示移動範圍前需要先設置一個遊戲管理類GameManager來管理所有的Cell單元,同時Piece是疊加在某個Cell上的,對應位置的Cell通過設置同樣的playerNumber值可以表示為對應Piece下的Cell單元,這裡可以通過射線檢測的方式實現,同理顯示攻擊範圍同時需要設置對應Cell上的Piece在範圍內時要為attackable,也可以利用射線來獲取Cell上的Piece。

public void SetStandCell(bool _stand)    {        RaycastHit2D[] hits = Physics2D.RaycastAll(transform.position, Vector2.zero);        foreach (var hit in hits)        {                         if (hit.collider.CompareTag("Cell"))            {                if (_stand == true)                {                    hit.collider.GetComponent<Cell>().playerNumber = playerNumber;                    cell = hit.collider.gameObject;                }                else                {                    hit.collider.GetComponent<Cell>().playerNumber = 0;                }            }        }    }

    移動功能則利用GameManager的selected和顯示移動範圍時對範圍內所有單元格的可移動選項moveable設置為true結合做一個簡單的坐標切換。

    攻擊功能稍微複雜些,在選中Piece對敵方Piece攻擊時需要選中敵方Piece,這時GameManager的selected就切換成了敵方Piece,那麼攻擊動作就無效了,會變成自己打自己的動作。這裡在GameManager中引入一個MainPlayer的標號表示對應回合的玩家編號,即可操作玩家編號。

    死亡功能即在攻擊後判斷對應Piece血量是否小於等於0,這裡視頻中製作了一個簡單的粒子效果表示死亡炸裂效果,同時銷毀物體。

回合制

    回合制即在GameManager中再加入一個NextPlayer的編號即可,每個回合只允許MainPlayer的move和attack,同時切換時交換MainPlayer和NextPlayer的編號,重置所有棋子的狀態,即攻擊狀態和已移動和已攻擊的表示。

    回合制中判定遊戲結束條件可以為一方的所有棋子都被消滅,即GameManager中添加pieceCount的int數組記錄每個編號的Piece的數量,在銷毀Piece前,減去對應PlayerNumber的Piece,同時判斷剩餘的數量,小於0即輸出遊戲結束,一方勝利。

用戶界面

    這塊是做角色Piece的屬性顯示部分的UI的

素材下載網址:https://kenney.nl/

    首先中間部分的Turn End按鈕對應上部分的回合切換,這裡加入了一個UIManager類管理UI部分,回合切換就是GameManager原本的功能,另起一個接口調用即可。

    兩邊的顯示包括血量、攻擊、護甲和移動範圍,直接根據Piece編號對應顯示即可。

    同時視頻部分還加入了一個開始界面,這部分主要就是加入了一個場景加載的過程,用到了UnityEngine.SceneManagement


場景的索引可以在File->Build Setting中看到

 優化

    優化部分主要是音效的添加和動畫,這部分不作總結。

尋路

    一個洪水算法,一個A-star算法,分別用來代替顯示移動範圍以及顯示移動路徑,具體原理如以下偽代碼部分。

相關焦點

  • 策略遊戲《聖女戰旗》NS/PS4版今日發售 好白的聖女!
    由中電博亞發行的策略遊戲《聖女戰旗(Banner of the Maid)》於今日正式登陸任天堂Switch和PS4平臺,官方在微博發布賀圖與遊戲主機板的最新消息,下面讓我們一起來看看吧!
  • 【福利】策略戰棋遊戲《聖女戰旗》今日登陸Switch與PS4
    以法國大革命為背景的策略戰棋遊戲《聖女戰旗》今日正式在 Switch 和 PS4 平臺發售,售價分別為 118 港元、16.99 美元 / 歐元。先來看看主機版的遊戲宣傳片吧: 在遊戲中,玩家將扮演拿破崙 · 波拿巴的妹妹波利娜 · 波拿巴,在革命期間四方奔走,在巴黎與各方勢力斡旋,於戰場之上統領軍隊,在硝煙之中書寫傳奇史詩。 本作在 2019 年 5 月登陸 Steam,至今已累計得到超過 3000 條用戶評測,其中 89% 為好評。
  • 策略戰棋遊戲《聖女戰旗》NS/PS4版今日正式發售 賀圖公開
    今日(8月12日),策略戰棋遊戲《聖女戰旗》Switch版和PS4版正式發售,官方在微博上透露了有關於Switch版和PS4版定價、DLC內容的一些消息,以下為官方此次公開的具體細節。官博截圖:官方表示:策略戰棋遊戲《聖女戰旗》Switch版和PS4版今日正式發售,免費DLC【伊萊莎小姐的筆記】與付費DLC【雲自海上來】(包含5個關卡與新角色)的商店頁面也在審核中,將於不久後登陸Switch與PS4,請大家耐心等待。
  • 國產策略戰棋遊戲《聖女戰旗》NS/PS4版8月12日發售
    由國人團隊Azure Flame Studio(蒼火遊戲小組)開發的策略戰棋遊戲《聖女戰旗》已在Nintendo Switch 香港、美國、歐洲的eShop 開放商店頁面,遊戲將於7 月31 日開放預約,8 月12 日正式發售,售價分別為118 港幣/ 16.99 美元/ 16.99 歐元。
  • 第三人稱視角射擊移動遊戲完整項目Unity遊戲素材資源
    為大家提供軟體遊戲素材鵝廠模型大觸通過這個素材可以學習多年的項目製作經驗和技巧本遊戲資料是個關於第三人稱視角射擊移動遊戲完整項目Unity遊戲素材資源,大小:440 MB ,格式:unitypackage,使用軟體:Unity,供廣大設計師學習使用,語言:英語。
  • 《聖女戰旗》評測:一款傳統的,策略戰棋類角色扮演遊戲
    這頭雄獅不日就將成為與凱撒大帝、亞歷山大大帝齊名的拿破崙大帝,並將自己的鐵騎席捲整個歐羅巴,他是如何從一個小島青年成長為一代大帝,當年的法國又究竟是怎樣的形勢,這一切的一切都讓人產生好奇,如果你厭倦了史書的枯燥,想通過其他方法了解當年的法國,了解那些明爭暗鬥的各個派系,了解封建帝王與底層民眾的更多故事,近日發售的一款遊戲《聖女戰旗》則可以完全滿足你的需求。
  • 作為戰棋遊戲的《聖女戰旗》到底如何?丨觸樂
    《聖女戰旗》很好,雖然它不太像是一款2019年的遊戲。《聖女戰旗》是一款歷史題材遊戲。
  • 中國團隊《聖女戰旗》2020年登陸 PS4/Xbox/NS!硬核的戰棋遊戲
    近日中國製作團隊Azure Flame Studio宣布旗下的策略RPG遊戲《聖女戰旗》將在2020年登陸PS4、Xbox One和NS平臺。這款遊戲可說是披著動漫風的外皮,但內容其實是相對硬核的遊戲。 《聖女戰旗》是一款以18世紀末、19世紀初,法國大革命時代為背景改編的策略戰棋遊戲。
  • 戰旗步全民、熊貓TV後塵?腰部遊戲直播求生法則
    作者|錢洛瀅編輯|友 子在春暖花開、疫情趨緩的4月第一周,戰旗TV僅剩不多的主播們卻「下崗」了。戰旗TV在3月底正式對內宣布,將在清明節假期後關閉遊戲直播頻道。以「天生愛玩,遊戲至上」作為Slogan的戰旗,據稱未來將轉型專注體育直播。
  • unity3d遊戲引擎開發的遊戲都有哪些?
    unity3d 那麼unity3d遊戲引擎開發的遊戲都有哪些 unity3d憑藉操作簡單易學、功能強大,效果逼真,運行流暢、多平臺等優勢,現已佔領了國內80%的遊戲開發,包括頁遊、網遊、手遊都是用Unity3d進行開發的。
  • 搞笑戰旗遊戲《坑人(Pit People®)》 Behemoth出品
    由The Behemoth工作室製作並發行的搞笑戰旗遊戲《坑人(Pit People®)》於2017年在Steam平臺上發布了搶先體驗版,提供單人、合作以及2V2對戰模式,是一款快節奏策略遊戲。
  • 因歐美地區臨時遊戲年齡分級調整 《聖女戰旗》下架歐美NS商店e-Shop
    剛剛中電博亞官方微博發博稱NS版《聖女戰旗》暫時在歐美地區eshop下架。親愛的《聖女戰旗》玩家,很抱歉地通知大家:因歐洲及北美地區臨時進行遊戲年齡分級調整,任天堂Switch版《聖女戰旗》暫時在北美及歐洲的eshop下架,港服不受影響。
  • //Unity賽跑小遊戲
    用unity做了一個簡易兔子賽跑遊戲,遊戲一共有兩個關卡。
  • Unity實戰之象棋遊戲
    並不是所有成功的遊戲都包括打外星人或拯救世界。棋盤遊戲,尤其是西洋棋,有著數千年的歷史。它們不僅玩起來很有趣,而且將它們從現實生活中轉變成視頻遊戲也很有趣。在本教程中,你將用 Unity 編寫一個 3D 象棋遊戲。
  • Humble bundle限時免費送2D策略遊戲《王國》 Steam特別好評
    Humble bundle限時免費送2D策略遊戲《王國》 Steam特別好評 Humble bundle限時免費贈送2D像素風策略遊戲
  • mac版Unity Pro遊戲開發工具如何創建和使用腳本
    Unity Pro 2018 for mac是遊戲開發必備的軟體之一,unity mac版主要用於創建2D和3D跨平臺遊戲,比如三維視頻遊戲、實時三維動畫、建築可視化等類型,儘管Unity的內置組件可以實現多種用途,但是您很快就會發現,您需要超越它們提供的功能來實現自己的遊戲功能。
  • 策魂三國遊戲評測:體驗一次亂世紛爭一統九洲戰棋遊戲
    六角戰旗相對於傳統回合制戰旗遊戲更為考驗戰術和策略,它有著更高維度的遊戲考量。譬如、可以考慮地形對傷害的影響,站在高處的弓兵具有更高的傷害,樹林或淺灘等特殊地形對不同兵種的buff/debuff等等。
  • 韓國產戰旗遊戲《Heroes Show Down》15日開啟搶先體驗 支持簡中
    【17173新聞報導,轉載請註明出處】由韓國遊戲公司Pathfinder 8開發的戰旗遊戲《Heroes Show Down》將從5月15日開始進行Steam的搶先體驗。
  • 華沙Warsaw評測 漫畫風二戰策略遊戲
    華沙Warsaw是一款二戰回合制戰術RPG遊戲。這款遊戲的背景設定於1944年,遊戲中,玩家扮演正義的一方,將和華沙軍一起對抗的德國的攻佔。在抵抗敵軍的同時,玩家將在愛情、友情、忠誠中做出選擇。接下來,我們一起看看這款遊戲的具體表現。
  • 怒之鐵拳最經典的一作,堪稱是當時2d過關遊戲的巔峰水平
    大家好,今天小編為大家帶來的依然是家用機上面的怒之鐵拳系列遊戲,這一次要介紹的怒之鐵拳3,這也怒之鐵拳最經典的一作,堪稱是當時2d過關遊戲的巔峰水平。怒之鐵拳3是1994年發布的遊戲,這一作也是怒之鐵拳三部曲的最後一部,所以在這個遊戲製作水準是相當的高的。