// Start is called before the first frame update void Start() { gameController = GameObject.FindObjectOfType <KNGGameController>(); rb = GetComponent <Rigidbody2D>(); currentLadder = null; isClimbing = false; }
private void OnTriggerEnter2D(Collider2D collision) { KNGLadder ladder = collision.gameObject.GetComponent <KNGLadder>(); KNGObstacle rollingObstacle = collision.gameObject.GetComponent <KNGObstacle>(); KNGFallingObstacle fallingObstacle = collision.gameObject.GetComponent <KNGFallingObstacle>(); KNGObjective objective = collision.gameObject.GetComponent <KNGObjective>(); if (ladder != null) { // we are on a ladder, we can climb currentLadder = ladder; } else if (rollingObstacle != null) { // we hit an obstacle that is falling down a ladder gameController.HitObstacle(); } else if (fallingObstacle != null) { // we hit a falling barrel, figure out what to do next gameController.HitObstacle(); } else if (objective != null) { // we reached the end of this level, figure out what to do next gameController.ReachedObjective(); } }
private void OnTriggerExit2D(Collider2D collision) { KNGLadder ladder = collision.gameObject.GetComponent <KNGLadder>(); if (ladder != null) { // we just left a ladder currentLadder = null; isClimbing = false; } }
private void OnTriggerEnter2D(Collider2D collision) { KNGObstacleDropPoint drop = collision.gameObject.GetComponent <KNGObstacleDropPoint>(); if (drop != null) { KNGLadder newLadder = drop.ladder; // we need to decide whether to fall down this ladder or not float rand = Random.Range(0f, 1f); if (rand < chanceToFall) { // trigger fall this.ladder = newLadder; FallDownLadder(); } } }