實現網格建造系統

版權聲明

  • 本文爲「優夢創客」原創文章,您能夠自由轉載,但必須加入完整的版權聲明
  • 更多學習資料請加QQ:1517069595獲取(企業級性能優化/Shader特效/熱更新/shader特效/服務器/商業項目實戰/每週直播/一對一指導)

咱們的建造系統要實現的目標:

在這裏插入圖片描述

  • WASD在地圖上移動
  • 按1~6鍵切換建造單位類型
  • 建築單元可佔據多個網格
  • 左鍵按下執行建造(有建造效果)
  • R鍵且換建造方向
  • 右鍵按下銷燬建在單位
  • 不能重疊建造

定義基礎網格數據結構

在這裏插入圖片描述
在這裏插入圖片描述

定義建築預製體,點擊建立實例

在這裏插入圖片描述

點擊建立實例在這裏插入圖片描述

解決建立位置重疊

在這裏插入圖片描述

只能建立在網格內(不能橫跨)

在這裏插入圖片描述

  • 根據鼠標位置獲得網格位置
  • 從而確保繪製在網格內
  • 思考:如何從鼠標位置獲得網格位置?

確保不能重疊建造

在這裏插入圖片描述
在這裏插入圖片描述

配置各建築單位的數據

在這裏插入圖片描述

解決跨網格建築單位重疊

在這裏插入圖片描述
在這裏插入圖片描述

解決方法:性能優化

  • 獲取建築單位佔據的全部網格座標(如何實現?)
  • 根據網格座標找到網格對象
  • 將這些網格對象都設置爲被正在建立的建築物佔據
  • 思考:如何實現GetPositionList?

使建築單位建立方向可旋轉(難點)

在這裏插入圖片描述

定義旋轉軸(在Step2)服務器

  • 定義當前方向
  • 定義旋轉規則
  • 如何保持在同一個網格區域內旋轉?
  • 思考如何實現:
    • GetNextDir
    • GetRotationOffset
    • GetRotationAngle

按鍵切換建築單位種類

在這裏插入圖片描述
在這裏插入圖片描述

  • 創建一個建築單位種類列表
  • 默認新建第0個種類的建築

創建建築放置預覽效果

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

  • GridObject改成存放PlaceObject
  • 存儲PlaceObject到GridObject

右鍵清除預覽對象

在這裏插入圖片描述

運用放置效果

在這裏插入圖片描述

商業進階

在這裏插入圖片描述

  • 如何實現建築單位升級?
  • 升級系統(數據配置、UI界面、升級邏輯、服務器交互…)
  • 如何實現建築單位的AI?
  • 建築單位的抽象化:
  • 怪物:自動戰鬥
  • 角色:自主行爲(休息、工做、娛樂、生活)、與場景內道具單位(如駕駛設施)的交互
  • 設施:自動穿行的出租車、遊樂場設施等
  • 資源:可開採物、可拾取道具、障礙…
  • 若是有成百上千個建築呢?
  • 若是不一樣的玩家類型能夠建造的建築類型不一樣呢?
  • 如何增長建造遊戲單元的UI操做界面?
  • 如何聯網遊玩?

在這裏插入圖片描述
在這裏插入圖片描述

更多學習資源請加QQ:1517069595獲取(/企業級性能優化/熱更新/Shader特效/服務器/商業項目實戰/每週直播/一對一指導)數據結構

完整視頻能夠點擊B站連接::https://www.bilibili.com/video/BV1TK4y1g7Seide

相關文章
相關標籤/搜索