public void Change(string name) { if (currentName == name) { return; } var prefab = settings.Prefabs.FirstOrDefault(x => x.name == name); if (prefab == null) { Debug.unityLogger.LogError(GetType().Name, $"prefab is null"); return; } if (instance != null) { UnityEngine.Object.DestroyImmediate(instance); } instance = UnityEngine.Object.Instantiate(prefab); instance.OnRelease(Vector3.zero); currentName = name; }
void IDisposable.Dispose() { UnityEngine.Object.DestroyImmediate(instance); instance = null; }