導(dǎo)入package,使用FPS預(yù)置件,在FPSController上添加Contronller.cs腳本
1. 鼠標(biāo)hover到按鈕上會變成小手
a).導(dǎo)入一張cursor的圖片,將該圖片的texture type改為Cursor
如果將texture type改為Sprite(2D and UI),也可以實(shí)現(xiàn),但是console會報錯
b).想要實(shí)現(xiàn)將鼠標(biāo)位置移動到相應(yīng)的3d模型上就改變其樣子,可以通過射線檢測,當(dāng)相觸物體的tag是operator的話,鼠標(biāo)會變成小手的樣子。

c). 因?yàn)樯厦孢@個函數(shù)是放在update函數(shù)中的,所以不知道一直在做射線檢測會不會很影響性能

2. 鼠標(biāo)控制旋轉(zhuǎn)方向時,可以讓鼠標(biāo)一直保持在屏幕的中間
在unity中,提供了鎖定光標(biāo)在中心的方法,但是這個光標(biāo)會hidden起來。

使用FPS預(yù)置件的時候,在MouseLook.cs腳本中封裝了這個方法,可以通過調(diào)用MouseLook.SetCursorLock(bool value)來改變此時是否鎖定光標(biāo)。如果value為true,通過escape按鍵可以臨時解除鎖定光標(biāo),但是不能進(jìn)行鼠標(biāo)的click操作,因?yàn)榘聪率髽?biāo)又會變成鎖定光標(biāo)模式。如果value為false,能夠?qū)崿F(xiàn)永久的解除光標(biāo)鎖定。

在加載在FPSController上面的Controller.cs文件中,我使用了上面的一段代碼準(zhǔn)備切換mouselock的狀態(tài),在debug過程中,代碼都run進(jìn)去了,但是卻沒有效果。
那是因?yàn)閙ouselook是我new的一個新對象,這個對象和掛載在FPSController上面的mouselook并不是同一個對象。所以必須獲取到這個mouselook對象,但發(fā)現(xiàn)在FirstPersonController.cs中,MouseLook對象是private的,為此,可以將其改成public(不推薦),或者如下,增加在FirstPersonController.cs中

然后在Controller.cs中獲取
