如何做電影網(wǎng)站賺錢嗎刷百度指數(shù)
Unity2D 學(xué)習(xí)筆記 0.Unity需要記住的常用知識(shí)
- 前言
- 調(diào)整Project Setting
- Tilemap相關(guān)(創(chuàng)建地圖塊)
- C#腳本相關(guān)
- 程序運(yùn)行函數(shù)
- private void Awake()
- void Start()
- void Update()
- Collider2D碰撞檢測(cè)
- private void OnTriggerStay2D(Collider2D player)
- private void OnTriggerEnter2D(Collider2D player)
- 如何確定碰撞物體的性質(zhì)
- 關(guān)鍵詞
- this
- gameObject
- void GameObject.SetActive(bool value)
- T GameObject.GetComponent\<T>()
- Mathf
- Mathf.Clamp(value, min, max)
- 輸入檢測(cè)Input
- 鍵盤輸入相關(guān)
- Input.GetAxis(string name)
- bool Input.GetButtonDown(string ButName)
- Unity Component相關(guān)
- Debug和奇怪問(wèn)題
前言
從小是一個(gè)很喜歡玩游戲的人,大概四歲的時(shí)候,在父親的幫助下,接觸了紅色警戒,后來(lái)又在同一棟樓的好朋友的推薦下,了解到了星際爭(zhēng)霸和魔獸爭(zhēng)霸。從那時(shí)候開始就總想做出一款有著類似星際爭(zhēng)霸那樣的劇情宏大,玩法新穎的游戲,希望自己能夠堅(jiān)持下去吧。
之后所有的學(xué)習(xí)筆記都是基于自己一個(gè)練手的項(xiàng)目,下面介紹我用的Unity版本,供大家借鑒:
Unity版本:2023.1.12f1c1
使用的VS版本2022
這一章主要是記錄一些奇怪的設(shè)置,以及一些預(yù)設(shè)函數(shù)名稱和用法。將來(lái)也會(huì)不斷補(bǔ)充。
調(diào)整Project Setting
Tilemap相關(guān)(創(chuàng)建地圖塊)
C#腳本相關(guān)
程序運(yùn)行函數(shù)
private void Awake()
在加載腳本實(shí)例時(shí)會(huì)調(diào)用此函數(shù)。
此函數(shù)的調(diào)用比Start更早。
void Start()
在程序開始正式運(yùn)行之前,調(diào)用的用于初始化程序的函數(shù)。
注意:僅在首次調(diào)用Update函數(shù)之前會(huì)執(zhí)行此函數(shù)。
void Update()
在每一幀都會(huì)運(yùn)行一次該函數(shù),作為程序的主函數(shù),十分重要。
Collider2D碰撞檢測(cè)
private void OnTriggerStay2D(Collider2D player)
用于檢測(cè)是否有物體與該Collider包圍盒有接觸。只要有物體待在檢測(cè)框內(nèi),便會(huì)一直出現(xiàn)結(jié)果。具體運(yùn)行邏輯為:每幀運(yùn)行一次這個(gè)函數(shù),檢測(cè)相關(guān)碰撞。
注意: 這個(gè)檢測(cè)會(huì)因?yàn)槲矬w進(jìn)入睡眠狀態(tài)而停止,如何改變睡眠狀態(tài)見后文Debug部分。
private void OnTriggerEnter2D(Collider2D player)
用于檢測(cè)物體是否進(jìn)入檢測(cè)框,只會(huì)在進(jìn)入的瞬間運(yùn)行。
如何確定碰撞物體的性質(zhì)
- 利用碰撞物體的tag進(jìn)行標(biāo)識(shí),如上圖。
關(guān)鍵詞
this
用于代指該腳本類,這與C++中相關(guān)概念類似。
gameObject
代指該腳本所掛在的gameObject。
void GameObject.SetActive(bool value)
用于設(shè)置該對(duì)象能否使用,是否激活。
T GameObject.GetComponent<T>()
用于獲取該對(duì)象的某個(gè)組件。
Mathf
一個(gè)數(shù)學(xué)相關(guān)的庫(kù)文件,可以直接引用,不需要Include和Using
Mathf.Clamp(value, min, max)
將value規(guī)范化到[min, max]區(qū)間內(nèi):
v ˉ = m i n ( m a x ( v , m i n ) , m a x ) \bar{v} = min(max(v, min), max) vˉ=min(max(v,min),max)
輸入檢測(cè)Input
鍵盤輸入相關(guān)
Input.GetAxis(string name)
用于獲取在name方向上的輸入,例如有"Horizontal"(水平),“Vertical”(垂直)。具體設(shè)置可以在Project Settings>Input Manager里面修改。
bool Input.GetButtonDown(string ButName)
獲取目標(biāo)按鈕的按下狀態(tài),如果按下 則返回true。
Unity Component相關(guān)
Debug和奇怪問(wèn)題
1.Q:為什么在碰撞檢測(cè)腳本中,使用OnTriggerStay2D函數(shù)時(shí),物體進(jìn)入并Stay后,該函數(shù)只會(huì)響應(yīng)一會(huì),隨后便不響應(yīng)了?
A:這是因?yàn)檫@個(gè)物體在Stay過(guò)程中,會(huì)自動(dòng)休眠。如果想要改變這個(gè)現(xiàn)狀,可以修改Edit>Project Settings>Physics 2D>Time To Sleep這個(gè)值,或改變其下面兩個(gè)參數(shù),來(lái)控制休眠時(shí)間。