簡體   English   中英

如何防止某些對象接收光線投射?

[英]How do I prevent certain objects from receiving the raycast?

我正在使用以下代碼執行光線投射並檢測被擊中的游戲對象:

var eventDataCurrentPosition = new PointerEventData(EventSystem.current);
eventDataCurrentPosition.position = screenPosition;
var results = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventDataCurrentPosition, results);

但是,我只希望EventSystem.current.RaycastAll擊中某些對象。 有沒有辦法只允許某些游戲對象接收光線投射?

您可以嘗試將 CanvasGroup 組件添加到您不想被光線投射擊中的 UI 元素。 CanvasGroup 具有“阻止光線投射”選項。 只需將其設置為 false 即可完成工作。

兩種方式,一種是您可以在每次需要更改時將每個 UI 類別分離到不同的畫布和來自不同 graphicsRaycaster 組件的光線投射。

或者,我認為 graphicsRaycaster 和 EventSystem.current.RaycastAl 都返回所有命中的 UI 對象的數組,那么為什么不根據它們的標簽左右通過腳本手動過濾掉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM