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

2021-01-14 如翼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算法,分別用來代替顯示移動範圍以及顯示移動路徑,具體原理如以下偽代碼部分。


相關焦點

  • 巧用Unity 2D功能:只需六步開發簡單的2D UFO遊戲
    無論我們現在可以選擇多少種類繁多的,擁有逼真畫面感的遊戲,2D遊戲始終會在玩家們的心中佔據一席之地,而對於想邁入開發者行列的同學們來說,先嘗試做一款2D遊戲無疑是合適的起點。Unity中的2D功能讓開發此類遊戲更加的便捷,這篇教程將教大家使用Unity 2D功能製作一個非常簡單的UFO遊戲,整個過程只需要6個步驟,適合Unity初學者以及對Unity的2D功能不甚熟悉的開發者們,希望Unity能讓你初嘗遊戲開發的樂趣,為以後的開發之路奠定基礎,你準備好完成這款簡單的2D遊戲了嗎?
  • 使用unity製作RPG遊戲3——2D精靈
    context=%7B%22nid%22%3A%22news_9564882242542237691%22%2C%22sourceFrom%22%3A%22bjh%22%2C%22url_data%22%3A%22bjhauthor%22%7D下面需要利用Tiled2Unity把01地圖導入unity下載Tiled2Unity,在根目錄下打開可執行文件進入unity。
  • 如何製造一個簡單的2D遊戲?
    No.1引擎選擇當決定開發一款遊戲的時候,第一步要考慮的是遊戲引擎的選擇。所以首先要問自己一個問題:我需要用什麼遊戲引擎來開發遊戲?相對主流的兩款遊戲引擎分別是Unity和Unreal Engine4(UE4),二者各有利弊,比如Unity的3D渲染效果不如UE4,但Unity有許多插件可以使用,開發效率會更高。
  • 搞笑戰旗遊戲《坑人(Pit People®)》 Behemoth出品
    由The Behemoth工作室製作並發行的搞笑戰旗遊戲《坑人(Pit People®)》於2017年在Steam平臺上發布了搶先體驗版,提供單人、合作以及2V2對戰模式,是一款快節奏策略遊戲。
  • 這個遊戲好玩嗎:女神異聞錄的外殼GalGame的本質,戰旗遊戲新高度
    這個遊戲好玩嗎:女神異聞錄的外殼GalGame的本質,戰旗遊戲新高度 2019-11-29 12:10  麼麼辰的遊戲百寶箱
  • 國內最經典的三國策略遊戲 老版經典三國遊戲下載地址
    國內最經典的三國策略遊戲 老版經典三國遊戲下載地址 來源:www.18183.com作者:澀澀時間:2020-12-03 分享到:
  • 遊戲粒子碰撞魔法特效Unity遊戲素材資源
    人人素材社區-最專業的CG藝術交流網站小夥伴們玩遊戲時遇到打鬥的畫面會不會感覺很爽,法術碰撞會產生格外好看的效果,這些特效是怎麼做出來的呢,今天為就大家介紹一款遊戲粒子碰撞的魔法特效素材,一起來了解一下。
  • 2021新年匯總:Unity項目原型快速開發資源,看這一篇就夠
    02  完整項目: 3D Game Kit : https://assetstore.unity.com/packages/templates/tutorials/3d-game-kit-115747 2D Game Kit
  • unity遊戲製作初始人物控制代碼
    大家好,今天小編帶大家學習一哈unity遊戲製作中初始人物控制代碼。1.我們知道遊戲中,選中人物,在人物未開始運動前,往往會有一個初始的動作,好的,我們這節課通過unity中相關代碼和基礎設置來實現這一效果。
  • unity業餘愛好者說一下
    unity業餘愛好者說一下,這幾天傳的關於《太吾繪卷》代碼的事幾乎都是無中生有的事...一群用.net和vs做工程的人談論第三方引擎做的遊戲...真是雞同鴨講。太吾繪卷現在針對幾個常見誤會說一下1.只有一個main (x)unity的腳本都是依附於各個精靈的,沒有main,只有update2.沒有注釋(x)你反編譯出來的代碼有注釋
  • 使用Unity 粒子系統實現 2D 人物足跡效果
    前言 項目中使用的基本角色控制腳本是由之後深入一想腳本大概要怎麼寫,感覺頭大的不行,又想到了 Hierarchy 裡面被 FootStep12345678 塞得滿滿當當的壯麗場面..還是換個方法吧 轉念一想:unity 的粒子系統似乎可以滿足所有特性:生成淡出銷毀全自動,跟隨人物也是基本操作,比較存疑的就是用腳本控制粒子的鏡像與旋轉。
  • 28組炫酷多彩遊戲粒子碰撞爆炸特效Unity遊戲素材資源
    人人素材社區-最專業的CG藝術交流網站在遊戲中我們是不是總會看見爆炸的場面感覺既炫酷又刺激呢  這種效果又是怎麼形成的呢今天為大家帶來就粒子碰撞爆炸特效快讓我們看看這種特效究竟是怎麼回事吧本遊戲資料是個關於28組炫酷多彩遊戲粒子碰撞爆炸特效Unity遊戲素材資源,大小:1MB ,
  • Unity項目開發過程中常見的問題,你遇到過嗎?
    最近看到有朋友問一個unity遊戲開發團隊,需要掌握哪些知識之類的問題。
  • 使用Unity製作經典2D遊戲之貪吃蛇(上)
    貪吃蛇是一種街機遊戲,最早的原型誕生於1976年。正如大多數街機遊戲一樣,它開發簡單,且娛樂性強(至少克森的童年時玩它玩過來的)。首先先創建一個項目:將該工程命名為「snake」,路徑由你們來設置,這裡我設置的是C盤根目錄下,選擇2D開發,然後點擊創建項目按鈕:
  • 使用Unity和HTML5開發移動遊戲的優缺點
    HTML5在開發移動遊戲的優勢比較明顯,但是還是有人希望能使用Unity重構。Unity由Unity Technologies開發的一個讓玩家輕鬆創建諸如三維視頻遊戲、建築可視化、實時三維動畫等類型互動內容的多平臺的綜合型遊戲開發工具,是一個全面整合的專業遊戲引擎。
  • mac版Unity Pro遊戲開發工具如何創建和使用腳本
    Unity Pro 2018 for mac是遊戲開發必備的軟體之一,unity mac版主要用於創建2D和3D跨平臺遊戲,比如三維視頻遊戲、實時三維動畫、建築可視化等類型,儘管Unity的內置組件可以實現多種用途,但是您很快就會發現,您需要超越它們提供的功能來實現自己的遊戲功能。
  • Unity官方示例:在ARCore和ARKit中實現多人遊戲
    但是不少開發者都向雷鋒網表示由於ARKit目前還難以支持多人遊戲,大大降低了AR遊戲的社交性和可玩性,也限制了遊戲場景。在Unity Austin 2017中,Unity向大家介紹了如何在Unity中使用ARKit和ARCore,以及如何解決多人遊戲的問題。此文原發於「Unity官方平臺」公眾號,雷鋒網獲授權轉載。
  • 策略遊戲的王者 盤點文明系列遊戲
    文明5  《文明5》是著名遊戲設計師席德·梅爾知名策略遊戲系列新作,遊戲於2010年秋季與玩家見面!  《文明5》應用全新遊戲引擎,導入六角格機制,採用了嶄新的戰鬥系統、深度的外交互動、以及各種遊戲功能,將令玩家獲得豐富的遊戲體驗。  2K Games表示,遊戲新加入遠距轟炸能力,玩家可於戰線後方發射武器,發展戰場致勝的新策略。除了首次在《文明5》登場新遊戲特色外,遊戲也將強調多樣化的社群、模組和多人遊戲元素。
  • Unity裡asset store下載的遊戲模型Amane kisora-chan用法介紹
    Unity裡內置asset store有很多免費的遊戲模型大家可以下載,下載的時候打開asset store搜索free即可。由日本SapphiArt設計的Amane Kisora-chan排在免費類較前的位置,角色形象比較美觀,有滿足大部分遊戲基本動作種類(等待、走、跑、攻擊、跳躍、受傷等)、簡單的臉部調節功能及動畫。
  • 有什麼好玩的手機策略遊戲_好玩的策略手機遊戲排行榜2018
    很多小夥伴喜歡玩策略類型的手遊,策略遊戲自由度都比較高,考驗的是玩家運籌帷幄的動腦能力,相對其他類型的遊戲而言,策略遊戲更側重於布局謀劃,玩起來也是別有一番滋味。那麼在像這樣的策略手機遊戲公益服中有哪些比較受歡迎呢,除此之外,又有什麼好玩的手機策略遊戲呢?下面就帶大家去看看好玩的策略手機遊戲排行榜2018,喜歡的小夥伴不要錯過哦。