// ---------------------------------------------------------------------------------------------------- #endregion #region Spawning Methods // ---------------------------------------------------------------------------------------------------- /// <summary> /// Spawns a new instance. /// </summary> public GameObject Spawn(Vector3 position, Quaternion rotation, Vector3 scale) { // Fetch next available instance FeatherPoolInstance poolInstance = NextAvailableInstance; if (poolInstance == null) { return(null); } // Signal if implementing poolInstance.InvokeOnSpawning(); // Set Transform poolInstance.SetPosition(position); poolInstance.SetRotation(rotation); poolInstance.SetScale(scale); // Signal if implementing poolInstance.InvokeResettable(); // Signal if implementing poolInstance.InvokeOnSpawned(); // Activate instance poolInstance.SetActive(); // Return instance return(poolInstance.PrefabInstance); }