配列(Array)の中に入っているオブジェクトを、Prefabとして生成して、設置できるようにしましょう。
数字の1~3キーを押すと、該当の要素が選ばれ、スペースキーで設置が可能です。
関連記事:
複数オブジェクトの出し入れ
指定した要素番号のオブジェクトを置く
配列のオブジェクトをキー操作で切り替える
配列にあるオブジェクトを要素番号で呼び出す
前方にオブジェクトを置く
取った数だけ設置できる
配列にある複数オブジェクトを一気に出す
複数地点から順番にPrefabを生成
キー操作で配列のオブジェクトを決定
CubeとPlaneを作成します。
Cubeにリジッドボディを追加し、中央に配置します。
空のオブジェクトを作成し、Cubeの前方に配置します。
GameObjectを、Cubeの中に入れて、親子関係をつくります。
GameObjectをCubeの前方に配置します。
シーンビューではこのように見えています。
Sphere、Capsule、Cylinderを作成し、リジッドボディを追加します。
3つのオブジェクトを、プロジェクトビューにドラッグ&ドロップし、Prefab化します。
元データは削除しておきます。
PutBall.csを作成し、GameObjectに追加します。
PutBall.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PutBall : MonoBehaviour { public GameObject[] myArray = new GameObject[3]; private int number; void Update () { if (Input.GetKeyDown (KeyCode.Alpha1)) { number = 0; } else if (Input.GetKeyDown (KeyCode.Alpha2)) { number = 1; } else if (Input.GetKeyDown (KeyCode.Alpha3)) { number = 2; } if(Input.GetKeyDown("space")) { Instantiate(myArray[number], transform.position, Quaternion.identity); } } } |
要素0~2の中に、それぞれのPrefabデータを入れます。
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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class CubeMove : MonoBehaviour { void Update() { if(Input.GetKey("up")) { transform.position += transform.forward * 0.03f; } if(Input.GetKey("down")) { transform.position += transform.forward * -0.03f; } if(Input.GetKey("right")) { transform.Rotate(0,2,0); } if(Input.GetKey("left")) { transform.Rotate(0,-2,0); } } } |
ゲームプレイしてみましょう。
数字キー1~3で、配列の中のPrefabオブジェクトを選択。
スペースキーを押すと、選択したオブジェクトを置くことができます。
関連記事:
複数オブジェクトの出し入れ
指定した要素番号のオブジェクトを置く
配列のオブジェクトをキー操作で切り替える
配列にあるオブジェクトを要素番号で呼び出す
前方にオブジェクトを置く
取った数だけ設置できる
配列にある複数オブジェクトを一気に出す
複数地点から順番にPrefabを生成