unity3D游戏-打飞碟游戏改进版
生活随笔
收集整理的這篇文章主要介紹了
unity3D游戏-打飞碟游戏改进版
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
打飛碟(Hit UFO)游戲改進版
內容要求
- 按 adapter模式 設計圖修改飛碟游戲
- 使它同時支持物理運動與運動學(變換)運動
適配器模式
-
適配器模式將某個類的接口轉換成另一個接口表示,目的是兼容性,讓原本因接口不匹配的不能工作的類可以協同工作
-
對動作管理運用類適配器模式,設計運動學適配器RoundActionManager和物理運動適配器PhysisManager,這兩個適配器實現了同一接口IActionManager,IActionManager提供了一個簡單動作方法,用于執行拋出飛碟的動作。
游戲規則
- 每個回合60s,玩過3關之后勝利
- 飛碟不同的顏色,大小對應不同的分數
- 回合60s內達到500分進入下一關,不能達到500分則失敗
代碼結構
游戲改進實現
-
大部分代碼不需要做修改
-
將原來的RoundActionManager里面的addRandomAction寫入到PhysisManager作為接口函數,我們在這個函數中為飛碟添加一個隨機方向的外力便可以達到改進效果,實現飛碟的物理學運動學飛行,在進行工廠模式和適配者模式的切換的時候,我們添加了變量If_Active,當If_Active=1的時候,我們切換到物理學運動模式,并將PysisManager腳本掛載到main對象中運行游戲
場景控制器中為PysisManager添加實例:
$ physisManager = Singleton<PhysisManager>.Instance; void Awake() {SSDirector director = SSDirector.getInstance();director.setFPS(60);director.currentScenceController = this;LoadResources();diskFactory = Singleton<DiskFactory>.Instance;scoreRecorder = Singleton<ScoreRecorder>.Instance;actionManager = Singleton<RoundActionManager>.Instance;physisManager = Singleton<PhysisManager>.Instance;leaveSecond2 = 60;state = State.PAUSE;disks = new List<GameObject>(); }- 由于PhysiscActionManager要用到FixedUpdate方法,所以要對SSAction(作用)、SSActionManager(作用)添加FixedUpdate,方法與Update相同
其他代碼
詳見項目鏈接
游戲運行截圖
項目鏈接
視頻演示鏈接
參考資料
感謝此篇參考博客
總結
以上是生活随笔為你收集整理的unity3D游戏-打飞碟游戏改进版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EfficientDet:可扩展的高效目
- 下一篇: Early Convolutions H