protected IEnumerator OnSetRemovedMode() { yield return(null); try { //if we're going into world mode then we're not in the stack any more OnRemoveFromStack.SafeInvoke(); //tell our group that we're permanently gone Group.RemoveChildItemFromGroup(this); //this will call OnRemovedFromGroup OnRemovedFromGame.SafeInvoke(); //make sure to save the state so we know it's removed! PrepareToUnload(); } catch (Exception e) { Debug.LogError("Exception while removing object: " + e.ToString()); } while (!ReadyToUnload) { yield return(null); } BeginUnload(); while (!FinishedUnloading) { yield return(null); } yield return(null); WorldItems.Unload(this); }
protected void OnSetWorldMode(bool freeze) { if (mDestroyed) { return; } if (rb != null) { rb.isKinematic = true; rb.useGravity = true; } if (Props.Global.ParentUnderGroup && !TransformLocked) { if (Group != null && tr.parent != Group.tr) { tr.parent = Group.tr; } } if (freeze) { Props.Local.Mode = WIMode.Frozen; if (rb != null) { rb.isKinematic = true; rb.useGravity = true; } } else { if (rb != null && CollisionsEnabled) { rb.isKinematic = false; rb.useGravity = true; } } ParentPivot = null; //if we're going into world mode then we're not in the stack any more OnRemoveFromStack.SafeInvoke(); //set it to null because we don't need it any more OnRemoveFromStack = null; ActiveStateLocked = false; gameObject.layer = Globals.LayerNumWorldItemActive; }
public void RemoveFromGame() { //Debug.Log ("Removing " + Props.Name.FileName + " from game"); Props.Local.PreviousMode = Props.Local.Mode; Props.Local.Mode = WIMode.RemovedFromGame; OnRemoveFromGroup.SafeInvoke(); mGroup = null; OnRemoveFromGroup = null; #if UNITY_EDITOR /*if (OnRemoveFromStack == null) { * Debug.Log ("OnRemoveFromStack was null"); * }*/ #endif OnRemoveFromStack.SafeInvoke(); OnRemoveFromStack = null; }
protected void OnSetHiddenMode() { if (HUD != null) { HUD.Retire(); } ParentPivot = null; //if we're going into hiding mode then we're not in the stack any more OnRemoveFromStack.SafeInvoke(); //set it to null because we don't need it any more OnRemoveFromStack = null; if (rb != null) { rb.isKinematic = true; } ActiveStateLocked = false; ActiveState = WIActiveState.Invisible; ActiveStateLocked = true; }