コード例 #1
0
ファイル: WorldsController.cs プロジェクト: libben/the-ocean
        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);
        }
コード例 #2
0
        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();
        }