版權聲明
- 本文爲「優夢創客」原創文章,您能夠自由轉載,但必須加入完整的版權聲明
- 更多學習資料請加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