using NaughtyAttributes; using UnityEngine; namespace GameplayIngredients.Actions { public class SpawnPrefabAction : ActionBase { [ReorderableList] public GameObject[] Prefabs; public Transform TargetTransform; public bool AttachToTarget = false; public bool DontDestroyPrefabsOnLoad = false; public override void Execute(GameObject instigator = null) { foreach (var prefab in Prefabs) { string name = prefab.name; Vector3 position = gameObject.transform.position; Quaternion rotation = gameObject.transform.rotation; if(TargetTransform != null) { position = TargetTransform.position; rotation = TargetTransform.rotation; } var obj = Instantiate(prefab, position, rotation); obj.name = name; if (AttachToTarget) obj.transform.parent = TargetTransform; if (DontDestroyPrefabsOnLoad) DontDestroyOnLoad(obj); } } } }