示例#1
0
    public virtual void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag == Tags.wall)
        {
            if (action == CharacterActionsEnum.digWall)
            {
                if (wallCheckTop.getCubeColliding() != null)
                {
                    digWallCubeTop = wallCheckTop.getCubeColliding();
                }
                if (wallCheckDown.getCubeColliding() != null)
                {
                    digWallCubeDown = wallCheckDown.getCubeColliding();
                }
                DigWallStart();
            }
            if (action == CharacterActionsEnum.climb)
            {
                ClimbStart();
            }
            if (action == CharacterActionsEnum.push)
            {
                if (wallCheckDown.getCubeColliding() != null)
                {
                    int height = wallCheckDown.getCubeColliding().GetHeight();
                    if (height == 1 && pushCube == null && wallCheckDown.getCubeColliding().pushable)
                    {
                        pushCube         = wallCheckDown.getCubeColliding().gameObject.GetComponent <PushableCube> ();
                        pushCubeMovement = pushCube.moveToDirection;

                        if (pushCube != null && pushCubeMovement != null)
                        {
                            PushStart();
                        }
                        else
                        {
                            ChangeDirection();
                        }
                    }
                    else
                    {
                        ChangeDirection();
                    }
                }
            }

            if (action != CharacterActionsEnum.digWall && action != CharacterActionsEnum.climb && action != CharacterActionsEnum.push)
            {
                if (wallCheckTop.getCubeColliding() != null || wallCheckDown.getCubeColliding() != null)
                {
                    ChangeDirection();
                }
            }
        }
    }
示例#2
0
    public virtual void PushEnd()
    {
        pushCubeMovement.StopMoving();
        ChangeDirection();

        pushCube         = null;
        pushCubeMovement = null;
        animator.SetBool(hashAnimator.push, false);

        NoAction();
    }