前回記事:サイコロを振る(前編)では、サイコロを投げるたびに、毎回違う目が出るようにしました。
今回は、出た目の数字を取得できる仕組みを作りましょう。
サイコロが転がって目が決まれば、その数字をコンソールに表示するようにします。
※サイコロを振る(前編)を完成させてから、本ページを進めてください。
前回記事:サイコロを振る(前編)
サイコロの全面にコライダー追加
前回からの続きを、進めていきます。
サイコロのPrefabを選択し、プレハブを開くをクリックします。
シーンギズモを押して、上から見下ろした状態にします。
2の目が見えている状態です。
空のオブジェクトを作成。
オブジェクト名を、「1」という名前に変更。
スフィアコライダーを追加し、コライダーの半径を0.5に変更。
Z座標を0.5にし、トリガーにするにチェックを入れましょう。
シーンビューではこの位置に見えています。
これで、1の目のところに、配置されていることになります。
1を複製し、名前を「6」に変更。
Z座標を-0.5に変更します。
6を複製し、名前を「4」に変更。
X座標を0.5に、Z座標を0に変更します。
4を複製し、名前を「3」に変更。
X座標を-0.5に変更します。
シーンギズモを操作し、横方向からのアングルに切り替えましょう。
6の目が見えている状態です。
3を複製し、名前を「2」に変更。
Y座標を0.5に、X座標を0に変更します。
シーンビューで、このように見えています。
これで、2の目のところに、コライダーが配置されていることになります。
2を複製し、名前を「5」に変更。
Y座標を-0.5に変更します。
以上で、サイコロのすべての面に、コライダーが追加されました。
サイコロの出た目の数を取得
矢印の部分をクリックして、元のシーンに戻ります。
DiceNumber.csを作成し、Planeに追加しましょう。
DiceNumber.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 50 51 52 53 54 55 56 57 58 59 60 61 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class DiceNumber : MonoBehaviour { public int number; void Start() { number = 0; } void Update() { if (Input.GetMouseButtonDown(0)) { number = 0; } } void OnTriggerStay(Collider collider) { if(collider.gameObject.name == "1") { number = 6; Invoke("NumberDisplay", 1.0f); } else if(collider.gameObject.name == "2") { number = 5; Invoke("NumberDisplay", 1.0f); } else if(collider.gameObject.name == "3") { number = 4; Invoke("NumberDisplay", 1.0f); } else if(collider.gameObject.name == "4") { number = 3; Invoke("NumberDisplay", 1.0f); } else if(collider.gameObject.name == "5") { number = 2; Invoke("NumberDisplay", 1.0f); } else if(collider.gameObject.name == "6") { number = 1; Invoke("NumberDisplay", 1.0f); } } void NumberDisplay() { Debug.Log(number); } } |
ゲームプレイして、クリックしてみましょう。
サイコロが着地して1秒後に、サイコロの出た目の数が、コンソールに表示されます。
前回記事:サイコロを振る(前編)