public void connect() { if (!lanternActivator) { throw new System.NullReferenceException( "HiddenAreaConnector needs a LanternActivator selected! " + "Try selecting one again." ); } if (!hiddenArea) { throw new System.NullReferenceException( "HiddenAreaConnector needs a HiddenArea selected! " + "Try selecting one again." ); } Undo.RecordObjects( new Object[] { lanternActivator, hiddenArea }, "Connect lantern to hidden area" ); EditorUtility.SetDirty(lanternActivator); EditorUtility.SetDirty(hiddenArea); //Connect lantern to hidden area lanternActivator.secretHider = hiddenArea; //Prepare hidden area for lantern hiddenArea.GetComponentsInChildren <Collider2D>().ToList() .FindAll(coll => coll.isTrigger) .FindAll(coll => !coll.gameObject.CompareTag("NonTeleportableArea")) .FindAll(coll => coll.OverlapPoint(lanternActivator.transform.position)) .ForEach(coll => coll.enabled = false); Debug.Log( "Connected! Lantern " + lanternActivator.name + " and HiddenArea " + hiddenArea.name ); }