Beispiel #1
0
    private void OnTriggerEnter2DCollideLadder(Collider2D collider)
    {
        if (collider.gameObject.name == "stair")
        {
            Debug.Log("stair");
            state = Movement.Ladder;
            character.gravityScale  = 0;
            transform.localPosition = new Vector3(collider.gameObject.transform.position.x, transform.localPosition.y, transform.localPosition.z);
        }

        if (collider.gameObject.tag == "upstair")
        {
            Debug.Log("up");
            touchingLadder         = LadderPosition.Botton;
            state                  = Movement.Ladder;
            character.gravityScale = 0;
            positionsTouches.Add(LadderPosition.Botton);
        }
        if (collider.gameObject.tag == "downstair")
        {
            Debug.Log("down");
            touchingLadder         = LadderPosition.Top;
            state                  = Movement.Ladder;
            character.gravityScale = 0;
            positionsTouches.Add(LadderPosition.Top);
        }
        if (collider.gameObject.tag == "middlestair")
        {
            Debug.Log("middle");
            touchingLadder         = LadderPosition.Middle;
            state                  = Movement.Ladder;
            character.gravityScale = 0;
            positionsTouches.Add(LadderPosition.Middle);
        }
    }
Beispiel #2
0
    private void OnTriggerExit2DLadder(Collider2D collider)
    {
        if (collider.gameObject.tag == "upstair")
        {
            Debug.Log("out up");
            //touchingLadder = LadderPosition.None;
            positionsTouches.Remove(LadderPosition.Botton);
            //rigidbody2D.gravityScale = 1;
            //state = Movement.Walk;
        }

        if (collider.gameObject.tag == "downstair")
        {
            Debug.Log("out down");
            //touchingLadder = LadderPosition.None;
            positionsTouches.Remove(LadderPosition.Top);
            //rigidbody2D.gravityScale = 1;
            //state = Movement.Walk;
        }

        if (collider.gameObject.tag == "middlestair")
        {
            Debug.Log("out  middle");
            //touchingLadder = LadderPosition.None;
            positionsTouches.Remove(LadderPosition.Middle);
        }

        if (positionsTouches.Count == 0)
        {
            //Debug.Log("no touch");
            touchingLadder = LadderPosition.None;
            //character.gravityScale = 1;
            state = Movement.Idle;
            //countLadderUse = 0;
        }
    }