SIKI学院简易射击游戏与数据读取保存学习笔记
知識點(疑問點)
1、如何控制槍的旋轉(朝向)?
2、如何控制怪物的生成,消滅?
3、如何保存當前游戲數據?
4、游戲相關的開始結束,暫停功能如何制作?
1、
首先將槍放置在一個合適的位置,分別在X軸和Y軸上旋轉,獲取X軸和Y軸的最大旋轉幅度。
通過Input.mousePosition,獲取當前的X、Y坐標,然后分別處以Screen.width與Screen.height,算出當前屏幕位置的百分比,接著用百分比乘以最大旋轉幅度。
接下來就是一些功能補充,添加一個子彈預制件,點擊的時候生成,然后通過Rigidbody組件調用.AddForce()方法添加一個力發射子彈。
小總結:學習到了根據屏幕百分比距離位置控制槍的朝向,以及AddForce()方法。
2、
首先設計一個怪物類,一共有四種怪物種類,聲明一個游戲數組,然后通過界面拖拽賦值(代碼賦值也可以,界面拖拽更方便)。怪物類本身通過協程來控制。在Start()里先對數組所有游戲物體遍歷,將BoxColider的狀態設置為false。調用第一個協程,隨機怪物生成。
調用完畢開始調用第二個協程,怪物死亡消失協程。
IEnumerator DeathTimer(){yield return new WaitForSeconds(Random.Range(3, 8));DeActivateMonster();}private void DeActivateMonster(){if (activeMonster != null){activeMonster.GetComponent<BoxCollider>().enabled = false;activeMonster.SetActive(false);activeMonster = null;}//調用激活時間的協程,達到一個反復激活和死亡的循環StartCoroutine("AliveTimer");}計時時間到之后再調用生成怪物協程。
邏輯:Start()開始調用生成怪物計時函數,計時結束,生成怪物,同時開啟怪物消失計時函數,計時結束,怪物消失,再次調用怪物計時函數。無限循環。實現方式——協程。
總結:學習了協程的閉環使用。
3、
存檔有四種方法,二進制,XML,Json,還有持久化數據(很少用來存儲大型數據,一般用來制作記住賬號等功能),調用相關API。
小總結:暫無,都是調用相關的API。
4、制作一個UI界面,添加Button相關組件,在該類中拿到怪物控制類,點擊開始的時候調用開始協程。暫停功能:通過Time.timeScale,因為使用的是協程,將Time.TimeScale設置為0即可。另外設置游戲狀態,因為槍類的轉向代碼是寫在update中,用控制狀態確定是否執行。
小總結:了解到Time.timeScale控制游戲狀態。
總體總結:通過鼠標在屏幕上的位置控制物體的轉向。Time.timeScale控制游戲狀態。協程的循環使用。
ps:這里是萌新U3D程序員,記錄工作中的問題的解決方法與日常的學習筆記。
ps:如果你無意中看到了這篇文章,估計不知道我在寫啥,如果你也對unity制作游戲感興趣,可以學一下這個視頻,然后再來看我的總結,或許能有點收獲。unity射擊游戲獨擋與獨擋(免費)
總結
以上是生活随笔為你收集整理的SIKI学院简易射击游戏与数据读取保存学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spark2+kafka报错:java.
- 下一篇: 苹果8官方主板价格_苹果紧急公布:部分i