簡単にではあるけれど、Rayを飛ばしてみる
動作環境
・Windows11
・UnityEditorのバージョン 2022.3.48.f1
・プロジェクト Universal 3D
スクリプトを書く
Rayにコライダーがヒットしたらコンソールにhit!と出力するスクリプトを書く
スクリプト名は自身の分かりやすい、目的にあった名前で大丈夫でしょう。今回はEnemyRayとしておく。
EnemyRay
using UnityEngine;
public class EnemyRay : MonoBehaviour
{
[SerializeField]
[Tooltip("rayの距離を指定する")]
private float rayDis = 5.0f;
[SerializeField]
[Tooltip("rayの原点を指定する")]
private Vector3 rayOrigin;
void FixedUpdate()
{
//Rayにコライダーがヒットしたらコンソールにhit!と出力する
if (Physics.Raycast(rayOrigin, transform.forward * rayDis, rayDis))
{
Debug.Log("hit!");
}
}
//RayをGizmosに描画する
private void OnDrawGizmos()
{
Debug.DrawRay(rayOrigin, transform.forward * rayDis, Color.red);
}
}
SerializeFieldで、Inspector上からRayの原点と飛ばす、描画する長さとを設定できるようにしておくと便利かも。また、OnDrawGizmos()でScene上にRayを描画しておくとデバッグ時に作業の効率化が図れるため、積極的に使いたいところ。