Prefabのマテリアルをランダムで変化させてみましょう。
クリックするたびにボールを生成し、色も変化させています。
関連記事:
クリックしたところにPrefabを生成する
クリックした空間にオブジェクトを置く
クリック位置にプレハブ作成
Sphereオブジェクトを作成します。
プロジェクトビューにドラッグ&ドロップして、プレハブ化します。
Sphreの元データは削除しておきます。
空のオブジェクトを作成します。
ClickBall.csを作成して、GameObjectに追加します。
ClickBall.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ClickBall : MonoBehaviour { public GameObject prefab; private Vector3 mousePosition; void Update() { if (Input.GetMouseButtonDown(0)) { mousePosition = Input.mousePosition; mousePosition.z = 10.0f; GameObject obj = Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); obj.GetComponent<Renderer> ().material.color = new Color(Random.value, Random.value, Random.value, 1.0f); } } } |
GameObject(空のオブジェクト)に、プレハブのフィールドが出来ています。
ここに、SphereのPrefabデータを入れます。
プレイして、ゲームビューをクリックしてみましょう。
Prefabを生成するたびにobjに格納し、マテリアルのRGBをRandom.valueで変化させています。