我製作了一個遊戲,我使用raycasting來確定玩家是否在物體上。我知道如何使用圖層來做到這一點,但我寧願這樣做,以便檢查它是否碰到帶有標籤的對象。繼承人的代碼:Unity Raycasting標籤而不是圖層
isObject = Physics2D.Linecast (this.transform.position, groundedEnd.position, 1 << LayerMask.NameToLayer ("Object"));
因此,而不是比較名爲「對象」一layermask,我寧願它檢查如果它擊中同一個標籤的對象,但我不知道該怎麼更換LayerMask。
這似乎沒有工作,它不承認我用該標籤擊中對象。有沒有辦法用某種標籤方法替換「<< LayerMask.NameToLayer」部分? – tomSurge
不能。過濾對象用於使用圖層進行光線投射的能力來自於圖層數量有限,這使得統一可以保留便利的數據結構(我假設)對其進行過濾。但是,您可以擁有任意數量的標籤,這將違背此數據結構的優化目的。 –
您還可以使用OnCollisionEnter2D事件檢測2D碰撞 –