プレーヤーの現在地と、他のオブジェクトのコライダーとの距離を取得できるように、スクリプトを作成してみましょう。
他のオブジェクトのコライダーを取得した後、Vector3.Distanceを使用して、距離を算出します。
関連記事:
一定距離から外れたら実行する
一定の距離に達したところで削除する
ジャンプした距離を表示する
距離に応じて条件を設定
コライダーの無効化と有効化
Rayが当たった位置までの距離
触れた相手のコライダーを削除(無効にする)
オブジェクトの半分まで入れば実行
Colliderを使った接触判定
複数のBoxColliderを取得する
X軸だけの移動量をfloat型で取得
他のコライダーを取得して距離を表示
空のオブジェクトを作成し、SphereColliderを追加します。
シーンビューでは、このように見えています。
続いて、プレーヤーとしてCubeを作成します。
SphereColliderから少し距離を離して配置します。
CubeMove.csを作成し、Cubeに追加します。
CubeMove.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { public SphereCollider sphereCollider; void Update() { float x = Input.GetAxis("Horizontal") * Time.deltaTime * 3; float z = Input.GetAxis("Vertical") * Time.deltaTime * 3; transform.position = new Vector3 ( transform.position.x + x, 0, transform.position.z + z ); float distance = Vector3.Distance(sphereCollider.transform.position, transform.position); Debug.Log(distance); } } |
スフィアコライダーのフィールドに、GameObjectを入れます。
ゲームプレイしてCubeを動かしましょう。
コンソールに、スフィアコライダーとの距離が表示されています。
オブジェクト間の距離は、Vector3.Distanceを使って算出します。
関連記事:
一定距離から外れたら実行する
一定の距離に達したところで削除する
ジャンプした距離を表示する
距離に応じて条件を設定
コライダーの無効化と有効化
Rayが当たった位置までの距離
触れた相手のコライダーを削除(無効にする)
る)オブジェクトの半分まで入れば実行
Colliderを使った接触判定
複数のBoxColliderを取得する
X軸だけの移動量をfloat型で取得