オブジェクトの動的生成 Scriptから
Resources.Load
前準備
- 動的生成を行いたいオブジェクトのプレハブを作成。
- Assets直下にResourcesフォルダを作成
- 1で作成したプレハブを2に配置
ここからScriptでの動的なオブジェクト生成処理。
using System.Collections; using System.Collections.Generic; using UnityEngine; using PlayerControl; namespace PlayerControl { public class BulletController : MonoBehaviour { private void DeactivateSelf() { // 爆発エフェクトオブジェクトを表示 GameObject explosiveCircleObj = (GameObject)Resources.Load("ExplosiveCircle"); Instantiate(explosiveCircleObj, transform.position, Quaternion.identity); }
上記のScriptでResouces配下においたプレハブ"ExplosiveCircle"のオブジェクトを取得し、そのオブジェクトをtransform.positionで指定した位置に生成できます。 上記は、オブジェクトの取得からScriptで行っているが、Unityの方でプレハブのオブジェクトを設定しておきそれをInstantinateするという方法でも実行可能。(この辺どっちが良いのか場合によるのだろう) 以下のような感じ。
using System.Collections; using System.Collections.Generic; using UnityEngine; using PlayerControl; namespace PlayerControl { public class BulletController : MonoBehaviour { // 爆発エフェクトのオブジェクト [SerializeField] private GameObject ExplosiveObj; private void DeactivateSelf() { Instantiate(explosiveCircleObj, transform.position, Quaternion.identity);