クリックしてRayを飛ばし、照射の当たった位置から、自身のオブジェクトまでの距離を表示させてみましょう。
前方のオブジェクトに対してクリックすれば、Raycastを照射。
Rayがヒットしたところまでの距離を、コンソールに表示します。
関連記事:
他のコライダーとの距離を取得
クリックした位置にオブジェクトを生成(Ray)
Rayの始点をマイナスにする
X軸だけの移動量をfloat型で取得
Raycastの照射距離を取得
対象物としてCubeを作成し、サイズを変更。
前方へ移動させます。
空のオブジェクトを作成し、Z方向を適当な位置まで下げます。
シーンビューで見ると、このような位置関係です。
RayScript.csを作成し、GameObjectに追加します。
RayScript.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rayscript : MonoBehaviour { void Update () { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit = new RaycastHit(); if (Input.GetMouseButtonDown(0)) { if (Physics.Raycast(ray, out hit)) { float distance = Vector3.Distance(hit.transform.position, transform.position); Debug.Log(distance); } } } } |
ゲームプレイしましょう。
前方のCubeをクリックすれば、コンソールに12.85と距離が表示されました。
関連記事:
他のコライダーとの距離を取得
クリックした位置にオブジェクトを生成(Ray)
Rayの始点をマイナスにする
X軸だけの移動量をfloat型で取得