特定のオブジェクトに対する距離によって、条件分岐できるように、スクリプトを作成してみましょう。
近づいた距離に応じて3つの条件を設定し、プレーヤーのマテリアルを変えていきます。
近づいたり離れたりすると、3段階で色が変わっていきます。
関連記事:
一定の距離に達したところで削除する
一定距離から外れたら実行する
オブジェクト間の距離を取得する
他のコライダーとの距離を取得
X軸だけの移動量をfloat型で取得
オブジェクトとの距離による条件設定
SphereとCubeを作成し、距離を離します。
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 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { [SerializeField] GameObject sphere; Renderer cubeRenderer; void Start() { cubeRenderer = GetComponent<Renderer>(); } 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(sphere.transform.position, transform.position); if(3<distance && distance<5) { cubeRenderer.material.color = Color.red; } else if(distance < 3) { cubeRenderer.material.color = Color.yellow; } else { cubeRenderer.material.color = Color.white; } } } |
スフィアのフィールドに、Sphereを入れます。
ゲームプレイして、Cubeを動かしましょう。
Sphereとの距離によって、Cubeの色が変わります。
関連記事:
一定の距離に達したところで削除する
一定距離から外れたら実行する
オブジェクト間の距離を取得する
他のコライダーとの距離を取得
X軸だけの移動量をfloat型で取得