protected virtual void Move()
    {
        // Lock move X during climbing.
        if (climb)
        {
            horizontalMove = 0;
        }

        // Fixed stuck wall in air.
        if (!charactorController.grounded && IsFacingWall())
        {
            bool facingRight = charactorController.facingRight;
            if (horizontalMove > 0 && facingRight ||
                horizontalMove < 0 && !facingRight)
            {
                horizontalMove = 0;
            }
        }

        // Fixed standing during crouch and has ceiling over head.
        bool nextCrouch = crouch;

        if (charactorController.wasCrouching && charactorController.ceiling)
        {
            nextCrouch = true;
        }

        charactorController.Move(horizontalMove * Time.fixedDeltaTime, nextCrouch, jump);
    }
Пример #2
0
    private void FixedUpdate()
    {
        if (PhotonNetwork.IsConnected && !photonView.IsMine)
        {
            return;
        }

        #region On-screen jumping
        //Onscreen input
        if (controllerListener != null)
        {
            if (controllerListener.GetJumpDown())
            {
                jump = true;
            }
        }
        #endregion

        //Move player
        controller.Move(horizontalMove * Time.fixedDeltaTime, false, jump);
        jump = false;
    }
 private void FixedUpdate()
 {
     controller2D.Move(horizontal * moveSpeed * Time.deltaTime, isCrouching, isJumping);
 }
    void FixedUpdate()
    {
        charactorController.Move(horizontalMove * Time.fixedDeltaTime, crouch, jump);

        // Raycast for ladder climbing
        RaycastHit2D topHit = Physics2D.Raycast(transform.position, Vector2.up, rayUpDistance, whatIsLadder);

        if (topHit.collider != null)
        {
            GameObject ladder = topHit.collider.gameObject;
            if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow))
            {
                gameObject.layer = LayerMask.NameToLayer("Climb");
                climb            = true;
            }
            //if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow))
            //{
            //    gameObject.layer = LayerMask.NameToLayer("Climb");
            //    climb = true;
            //}
        }
        else
        {
            gameObject.layer = LayerMask.NameToLayer("Player");
            climb            = false;
        }

        charactorController.Climb(verticalMove * Time.fixedDeltaTime, climb);
        RaycastHit2D hit = Physics2D.Raycast(new Vector2(transform.position.x + 0.15f * transform.localScale.x, transform.position.y), Vector2.right * transform.localScale.x, 0.5f, LayerMask.GetMask("Crate"));

        if (hit)
        {
            if (hit.transform.tag == "Crate")
            {
                if (Input.GetKey(KeyCode.Return))
                {
                    holdCrate = true;
                    if ((transform.localScale.x < 0 && horizontalMove < 0) || (transform.localScale.x > 0 && horizontalMove > 0))
                    {
                        //Debug.Log(hit.transform.name);
                        hit.rigidbody.AddForce(new Vector2(transform.localScale.x * 20 * Time.deltaTime, 0), ForceMode2D.Force);
                        hit.transform.gameObject.GetComponent <Crate>().ActiveCrate();
                    }
                }
                else
                {
                    holdCrate = false;
                }
            }
            else
            {
                holdCrate = false;
            }
        }
        else
        {
            holdCrate = false;
        }
        Debug.DrawRay(new Vector2(transform.position.x + (0.15f * transform.localScale.x), transform.position.y), Vector2.right * transform.localScale.x * 0.5f, Color.green);
        jump = false;
    }
Пример #5
0
    void FixedUpdate()
    {
        m_PlayerController.Move(m_PlayerHorizontalMove, m_PlayerVerticalMove, m_PlayerJump, m_PlayerRun);

        m_PlayerJump = false;
    }