您好,登錄后才能下訂單哦!
游戲開(kāi)發(fā)人員可以使用光線投射,用于像瞄準(zhǔn),確定視線,測(cè)量距離之類的動(dòng)作。Unity當(dāng)中的Raycast的重載有很多?,F(xiàn)在展示最常用的2中方法
bool Raycast( Vector3 origin , Vector3 direction , float distance ,LayerMask mask );
參數(shù)解釋
origin : 是光線的開(kāi)始位置
direction : 光線的方向
distance : 光線行進(jìn)的距離(可為null)
mask : 確定光線會(huì)撞上哪一層(可為null)
如果要確定攝像機(jī)前確定是否有某個(gè)物體,可以用如下代碼
void Update(){ if (Physics.Raycast(transform.position , transform.forward , 10 )){ print("there is something in front of the camera!"); } }
注意此代碼放在camera中
另一個(gè)
bool Raycast( Vector3 origin , Vector3 direction , out RaycastHit hit , float distance );
這個(gè)重載方法使用了一個(gè)RaycastHit類型的參數(shù) , 它是光線碰撞到的對(duì)象
void Update(){ float dirX = Input.GetAxis("Mouse X"); float dirY = Input.GetAxis("Mouse Y"); transform.Rotate(dirY , -dirX , 0 ); UptateRaycastHit(); } void UpdateRaycastHit(){ RayCastHit hit; if( Physics.Raycast( transform.position , transform.forward , out hit ) ){ Distroy( hit.collider.gameObject ) } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。