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); } }
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; } }