// 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;
        }
    }
Ejemplo n.º 4
0
    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();
            }
        }
    }