生成するPrefabの大きさを、スライダーで調整できるようにしましょう。
スライダーの移動量によって、ボールのサイズが変化します。
関連記事:
Sliderを使ったサイズ変更
条件によってPrefabのサイズを変える
Sliderをキー操作で動かす
スライダーでボリュームを変える
Prefabの用意
Sphereオブジェクトを作成します。
Sphereをプロジェクトビューにドラッグ&ドロップして、Prefabデータに変換します。
Sphereの元データは削除します。
Sliderの用意
UIからSliderを作成します。
Sliderを中央下に配置しました。
インスペクターのSliderで、最小値(MinValue)と最大値(MaxValue)を設定できます。
ここでは、MinValueを1に、MaxValueを2にしました。
これで等倍から2倍の大きさまで拡縮させることができます。
Sliderの値をPerfabサイズに反映
空のオブジェクトを作成します。
ClickSphere.csを作成して、GameObject(空のオブジェクト)に追加します。
ClickSphere.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 |
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class ClickSphere : MonoBehaviour { public GameObject prefab; private GameObject ballObj; private Vector3 mousePosition; public Slider slider; void Start() { slider = GameObject.Find("Slider").GetComponent<Slider>(); } void Update() { //Sliderをクリックする時、プレハブ生成を止める if(EventSystem.current.IsPointerOverGameObject()){ return; } if (Input.GetMouseButtonDown(0)) { float scale = slider.value; mousePosition = Input.mousePosition; mousePosition.z = 10.0f; GameObject obj = Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),Quaternion.identity); obj.transform.localScale = new Vector3(scale, scale, scale); } } } |
using UnityEngine.UI; と using UnityEngine.EventSystems; を忘れずに記述しておきましょう。
Sliderの触る時だけ、クリックのアクションを止めるため、EventSystem.current.IsPointerOverGameObject() を入れています。
GameObjectのインスペクターを確認しましょう。
プレハブのフィールドに、Sphereを入れます。
ゲームプレイしましょう。
関連記事:
Sliderを使ったサイズ変更
条件によってPrefabのサイズを変える
Sliderをキー操作で動かす
スライダーでボリュームを変える