オブジェクトにぶつかるたびに、bool型の変数を切り替えできるようにしましょう。
今回の例では、Cubeを動かして、Sphereに接触させます。
フラグが真(true)の場合は偽(false)に、偽(false)の場合は真(true)に変わります。
ぶつかるたびにboolを変える
CubeとSphereを作成して、少し距離をとります。
Sphereのトリガーにチェックを入れます。
Cubeにはリジッドボディを追加し、isKinematicにチェックを入れます。
CubeScript.csを作成し、Cubeに追加します。
CubeScript.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 40 41 42 43 44 45 46 47 48 49 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeScript : MonoBehaviour { private float speed; public bool flag; void Start() { speed = 5; } void Update() { if (Input.GetKey(KeyCode.UpArrow)) { transform.Translate(0f, 0f, speed*Time.deltaTime); } if (Input.GetKey(KeyCode.DownArrow)) { transform.Translate(0f, 0f, -speed*Time.deltaTime); } if (Input.GetKey(KeyCode.LeftArrow)) { transform.Translate(-speed*Time.deltaTime, 0f, 0f); } if (Input.GetKey(KeyCode.RightArrow)) { transform.Translate(speed*Time.deltaTime, 0f, 0f); } } void OnTriggerEnter(Collider other) { if(other.gameObject.name == "Sphere") { if(!flag) { flag = true; } else { flag = false; } } } } |
ゲームプレイして、十字キーで操作しましょう。
ぶつかるたびに、Flagの真偽値が切り替わります。