日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SIKI学院简易射击游戏与数据读取保存学习笔记

發布時間:2024/3/24 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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。調用第一個協程,隨機怪物生成。

private void Start(){foreach(GameObject monster in monsters){monster.GetComponent<BoxCollider>().enabled = false;monster.SetActive(false);}//調用協程StartCoroutine("AliveTimer");}IEnumerator AliveTimer(){//等待1-4秒后執行ActivateMonster方法yield return new WaitForSeconds(Random.Range(1, 5));ActivateMonster();}private void ActivateMonster(){int index = Random.Range(0, monsters.Length);activeMonster = monsters[index];activeMonster.SetActive(true);activeMonster.GetComponent<BoxCollider>().enabled = true;//調用死亡時間的協程StartCoroutine("DeathTimer");}

調用完畢開始調用第二個協程,怪物死亡消失協程。

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学院简易射击游戏与数据读取保存学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。