[CYFEventFunction] public void Remove(string eventName) { GameObject go = GameObject.Find(eventName); if (!go) { Debug.LogWarning("Event.Remove: The event " + eventName + " doesn't exist but you tried to remove it."); } else { EventOW ev = go.GetComponent <EventOW>(); if (ev != null) { if (!(ev.name.Contains("Image") || ev.name.Contains("Tone"))) { if (GlobalControls.EventData.ContainsKey(ev.name)) { GlobalControls.EventData.Remove(ev.name); } try { GameState.EventInfos ei = new GameState.EventInfos() { CurrPage = ev.actualPage, CurrSpriteNameOrCYFAnim = ev.GetComponent <CYFAnimator>() ? ev.GetComponent <CYFAnimator>().specialHeader : EventManager.instance.sprCtrls[ev.name].img.GetComponent <SpriteRenderer>() ? EventManager.instance.sprCtrls[ev.name].img.GetComponent <SpriteRenderer>().sprite.name : EventManager.instance.sprCtrls[ev.name].img.GetComponent <Image>().sprite.name, NoCollision = ev.gameObject.layer == 0, Anchor = UnitaleUtil.VectorToVect(ev.GetComponent <RectTransform>().anchorMax), Pivot = UnitaleUtil.VectorToVect(ev.GetComponent <RectTransform>().pivot) }; GlobalControls.EventData.Add(ev.name, ei); } catch { } } } if (EventManager.instance.eventScripts.ContainsKey(go)) { if (EventManager.instance.coroutines.ContainsKey(EventManager.instance.eventScripts[go])) { EventManager.instance.coroutines.Remove(EventManager.instance.eventScripts[go]); } EventManager.instance.eventScripts.Remove(go); } EventManager.instance.sprCtrls.Remove(eventName); EventManager.instance.events.Remove(go); if (go.transform.parent != null) { if (go.transform.parent.name == "SpritePivot") { go = go.transform.parent.gameObject; } } Object.Destroy(go); //NEED PARENTAL REMOVE } if (appliedScript != null && (EventManager.instance.ScriptLaunched || EventManager.instance.coroutines.ContainsKey(appliedScript))) { appliedScript.Call("CYFEventNextCommand"); } }