[Unity] 使用Raycast顯示射擊軌跡

本教程適合Unity新手或?qū)aycast不甚了解的開發(fā)者,主要介紹Raycast的用途并繪制出射擊游戲的射線軌跡。

最終效果

本課程包括鼠標控制相機旋轉(zhuǎn)、射擊物體、顯示射線軌跡及準星三個部分,最終實現(xiàn)效果如下:


在講解實現(xiàn)步驟之前,先來了解Raycast的概念。Raycast可以簡單理解為游戲場景中由某點發(fā)出的隱形射線,它能返回所有被射線射中的游戲?qū)ο蟮脑敿毿畔⒓癛aycastHit結(jié)構(gòu)體,RaycastHit結(jié)構(gòu)體包括該游戲?qū)ο蟮腡ransform引用和射線與游戲?qū)ο蠼稽c的坐標等等。這里需要注意的是,只有帶有碰撞體的游戲?qū)ο蟛拍鼙簧渚€檢測到。

想了解更多關(guān)于Raycast及RaycastHit的信息,請點擊[閱讀原文]進入Unity官方中文社區(qū)。

另外要注意的是,在FPS游戲中,射擊目標通常都是玩家眼睛朝向的位置,也就是相機正前方的中心點。所以這里瞄準物體并進行碰撞檢測的射線并非我們需要繪制的射擊軌跡。


實現(xiàn)步驟

1 準備工作

首先點擊[閱讀原文]進入Unity官方中文社區(qū),下載本課程所需的工程資源并導入Unity項目中。

找到Let’s Try Shooter > Scenes文件夾下的ShootingWithRaycasts場景并雙擊打開。其中已經(jīng)設置好了本課程所需的游戲環(huán)境,F(xiàn)PSController來自Unity自帶的Standard Assets資源包,下面新增了Gun游戲?qū)ο螅?/p>


使用鼠標旋轉(zhuǎn)場景中的相機,手臂會隨著鼠標進行旋轉(zhuǎn)。

2 添加射擊腳本

下面來添加射擊腳本。在Scripts目錄下新建C#腳本命名為RaycastShoot,將該腳本拖拽至層級視圖的Gun游戲?qū)ο笊?,然后雙擊腳本進行編輯。RaycastShoot腳本的主要作用是發(fā)出射線,射擊物體并造成傷害,播放射擊音效,顯示射擊軌跡并等待一段時間后消失。腳本代碼如下:


注意,射線應該從玩家眼睛所處位置向眼鏡前方射出,玩家眼睛即相機所在位置。

上述代碼涉及到還未添加的腳本與游戲?qū)ο?,下面的步驟將一一說明。

3 添加LineRenderer組件

為Gun游戲?qū)ο筇砑覮ineRenderer組件,用于在運行時的游戲視圖中繪制出射擊軌跡,只有子彈發(fā)出時才會顯示軌跡,所以默認是隱藏的,取消勾選組件名左側(cè)的復選框隱藏組件。另外這里并未指定材質(zhì),所以繪制出來的射線會是粉紅色的,你也可以自行添加材質(zhì)。


4 創(chuàng)建GunEnd

這里需要一個空的游戲?qū)ο笞鳛闃岊^處的位置標記,在層級視圖中選中Gun游戲?qū)ο螅益I單擊在彈出菜單中選擇Create Empty新建游戲?qū)ο?,重命名為GunEnd。為GunEnd添加標簽以便在場景中顯示更明顯,然后調(diào)整GunEnd的坐標至槍頭處,這里設置為(0.36, -0.18, 1):


將創(chuàng)建好的GunEnd游戲?qū)ο笸献е罣un對象的RaycastShoot腳本的GunEnd字段。

5 添加RayViewer腳本

上面提到了,瞄準物體并進行碰撞檢測的射線并非我們需要繪制的射擊軌跡。需要繪制的射擊軌跡已經(jīng)在RaycastShoot腳本中完成了,接下來添加RayViewer腳本,使用Debug功能在場景中繪制用于瞄準的射線,也就是從相機位置發(fā)出的射線。

新建C#腳本重命名為RayViewer,將腳本拖拽至Gun游戲?qū)ο笊希p擊腳本進行編輯。RayViewer腳本代碼如下:


到此射線的處理與繪制就差不多了,運行場景會看到場景視圖出現(xiàn)了兩條射線:


找到層級視圖中Environment > Targets下,有兩個TargetBox對象,選中對象會發(fā)現(xiàn)上面已經(jīng)綁定了ShootableBox腳本。ShootableBox腳本的功能非常簡單,CurrentHealth表示對象當前血量,初始總血量為3,腳本代碼如下:


在上方的RaycastShoot腳本中已經(jīng)添加了射擊處理的邏輯,當射中立方體時,此時運行場景,已經(jīng)可以進行射擊了,但還是比較難進行瞄準。下面來添加準星。

6 添加UI

在層級視圖右鍵單擊,彈出菜單中依次選擇UI > Image新建Image,點擊Color右邊的顏色選取按鈕,將Image的顏色設置為紅色:


然后點擊Rect Transform的錨點設置按鈕,按下Alt/Option鍵同時選擇中心點,讓準星永遠出現(xiàn)在屏幕中心位置:


設置好后再次點擊運行,大功告成啦!再看看運行效果:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容