Raycastで無視したいオブジェクトのInspectorウィンドウの上部にある「Layer」ドロップダウンメニューから「Ignore Raycast」を選択します。
Ignore Raycastを設定されたオブジェクトはRayが貫通します。
特定のレイヤーのみRayの対象にしたい場合は、レイヤーマスクを使用します。この方法では、指定したレイヤー以外のオブジェクトすべてが無視されます。
using UnityEngine;
public class SampleScript : MonoBehaviour
{
[SerializeField] private float raycastDistance = 100f; // 光線を飛ばす距離
void Update()
{
// Enemyという名前のレイヤーのオブジェクトのみRayが当たるようになる
int layerMask = LayerMask.GetMask("Enemy");
if (Physics.Raycast(transform.position, transform.forward, out RaycastHit hit, raycastDistance, layerMask))
{
Debug.Log("Hit: " + hit.collider.gameObject.name);
}
}
}