public static void Delete(GameObject[] targets) { Validate(targets); var previousSelection = Selection.objects; Selection.objects = targets; Unsupported.DeleteGameObjectSelection(); Selection.objects = previousSelection; }
public static void Delete(GameObject gameObject) { var rigBuilder = gameObject.GetComponent <RigBuilder>(); var vaRigBuilder = gameObject.GetComponent <VeryAnimationRigBuilder>(); var vaRig = GetVeryAnimationRig(gameObject); var rig = vaRig != null?vaRig.GetComponent <Rig>() : null; var index = rigBuilder != null && rig != null?rigBuilder.layers.FindIndex(x => x.rig == rig) : -1; if (rig != null) { Selection.activeGameObject = rig.gameObject; Unsupported.DeleteGameObjectSelection(); if (rig != null) { return; } rig = null; } if (vaRigBuilder != null) { Undo.DestroyObjectImmediate(vaRigBuilder); vaRigBuilder = null; } if (rigBuilder != null) { if (index >= 0 && index < rigBuilder.layers.Count) { Undo.RecordObject(rigBuilder, ""); rigBuilder.layers.RemoveAt(index); if (rigBuilder.layers.Count == 0) { Undo.DestroyObjectImmediate(rigBuilder); } } rigBuilder = null; } }