【Unity】Debug.DrawRayを使ってrayがヒットした時の色を変える
Debug.DrawRayを使用して、Rayがヒットした場合としない場合で、描画する色を変更することができます。具体的には、Rayがヒットしたかどうかを判定して、その結果に応じてDebug.DrawRayメソッドの色を変更することができます。
目次
サンプル
以下は、Rayがオブジェクトにヒットした場合は緑色、ヒットしなかった場合は赤色で描画する例です。
using UnityEngine;
public class PlayerController : MonoBehaviour
{
// Rayの長さ
public float rayLength = 10f;
void Update()
{
// マウスの位置を取得
Vector3 mousePosition = Input.mousePosition;
// カメラからRayを発射する
Ray ray = Camera.main.ScreenPointToRay(mousePosition);
// Rayを発射し、ヒットしたオブジェクトを取得する
RaycastHit hit;
bool isHit = Physics.Raycast(ray, out hit, rayLength);
// Rayを可視化する
if (isHit)
{
// Rayがオブジェクトにヒットした場合は緑色で描画する
Debug.DrawRay(ray.origin, ray.direction * hit.distance, Color.green);
}
else
{
// Rayがオブジェクトにヒットしなかった場合は赤色で描画する
Debug.DrawRay(ray.origin, ray.direction * rayLength, Color.red);
}
}
}
この例では、Physics.Raycastメソッドを使用してRayがオブジェクトにヒットしたかどうかを判定しています。Rayがオブジェクトにヒットした場合は、ヒットしたオブジェクトまでの距離(hit.distance)を使用して、Debug.DrawRayメソッドの長さを設定しています。また、色も緑色に設定しています。Rayがオブジェクトにヒットしなかった場合は、Debug.DrawRayメソッドの長さをrayLengthに設定し、色を赤色に設定しています。
ディスカッション
コメント一覧
まだ、コメントがありません