bool SwitchPlayerWorld(bool CheckForCollision) { if (CheckForCollision && CollidingInOtherWorld()) { return(false); } Source.Play(); PlayerCurrentWorld *= -1; if (PlayerCurrentWorld > 0) { PlayerObject.layer = (int)Layers.PLAYERW1; // Need to inform the movement controller script that the ground is now world 1's ground Player.GroundLayer = LayersManager.GetLayerMaskWorld1(); var currentBox = Player.GetGrabbedBox(); if (currentBox) { if (currentBox.gameObject.layer != (int)Layers.OBJECTS_PERSISTENT) { currentBox.gameObject.layer = (int)Layers.OBJECTS1; currentBox.gameObject.GetComponent <Renderer>().sortingLayerName = "Objects1"; currentBox.SetCurrentWorld(PlayerCurrentWorld); } } } // 1->2 else { PlayerObject.layer = (int)Layers.PLAYERW2; Player.GroundLayer = LayersManager.GetLayerMaskWorld2(); var currentBox = Player.GetGrabbedBox(); if (currentBox) { if (currentBox.gameObject.layer != (int)Layers.OBJECTS_PERSISTENT) { currentBox.gameObject.layer = (int)Layers.OBJECTS2; currentBox.gameObject.GetComponent <Renderer>().sortingLayerName = "Objects2"; currentBox.SetCurrentWorld(PlayerCurrentWorld); } } } return(true); }
void Start() { //Get a reference to the required components input = GetComponent <PlayerInput>(); rigidBody = GetComponent <Rigidbody2D>(); Anim = GetComponent <Animator>(); SpriteRend = GetComponent <SpriteRenderer>(); NormalSprite = SpriteRend.sprite; var allPlayerColliders = gameObject.GetComponents <BoxCollider2D>(); foreach (BoxCollider2D collider in allPlayerColliders) { if (!collider.isTrigger) { bodyCollider = collider; } } //Record the original x scale of the player originalXScale = transform.localScale.x; GroundLayer = LayersManager.GetLayerMaskWorld1(); }