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

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

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

使用FPS預(yù)置件的時(shí)候,在MouseLook.cs腳本中封裝了這個(gè)方法,可以通過調(diào)用MouseLook.SetCursorLock(bool value)來改變此時(shí)是否鎖定光標(biāo)。如果value為true,通過escape按鍵可以臨時(shí)解除鎖定光標(biāo),但是不能進(jìn)行鼠標(biāo)的click操作,因?yàn)榘聪率髽?biāo)又會(huì)變成鎖定光標(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的一個(gè)新對(duì)象,這個(gè)對(duì)象和掛載在FPSController上面的mouselook并不是同一個(gè)對(duì)象。所以必須獲取到這個(gè)mouselook對(duì)象,但發(fā)現(xiàn)在FirstPersonController.cs中,MouseLook對(duì)象是private的,為此,可以將其改成public(不推薦),或者如下,增加在FirstPersonController.cs中

然后在Controller.cs中獲取
