Exemplo n.º 1
0
 /// <summary>
 /// Store a map of Colliders and their trigger state into a dictionary
 /// </summary>
 /// <param name="targetObject">Game object to scan</param>
 /// <param name="colliderTriggerBackup">Dictionary used to map colliders to their trigger state</param>
 public static void BackupTriggerState(GameObject targetObject, ColliderTriggerMap colliderTriggerBackup)
 {
     colliderTriggerBackup.Clear();
     foreach (Collider collider in targetObject.GetComponentsInChildren <Collider>(true))
     {
         colliderTriggerBackup.Add(collider, collider.isTrigger);
     }
 }
Exemplo n.º 2
0
 /// <summary>
 /// Replace the collider trigger states of a game object using a previously stored map (see <see cref="BackupTriggerState"/>)
 /// </summary>
 /// <param name="targetObject">Game object to scan</param>
 /// <param name="colliderTriggerBackup">Dictionary that maps colliders to their trigger state</param>
 /// <remarks>If the given dictionary does not match the colliders the behaviour is undefined.</remarks>
 public static void RestoreTriggerState(GameObject targetObject, ColliderTriggerMap colliderTriggerBackup)
 {
     foreach (Collider collider in targetObject.GetComponentsInChildren <Collider>(true))
     {
         if (colliderTriggerBackup.ContainsKey(collider))
         {
             collider.isTrigger = colliderTriggerBackup[collider];
         }
     }
 }