private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "dropbox") { if (FindObjectOfType <GameScript>().Rand.NextDouble() < 0.5D) { LadderZone ladder = collision.gameObject.GetComponent <Dropbox>().Ladder; Physics2D.IgnoreCollision(GetComponent <CircleCollider2D>(), ladder.IgnoredPlatform.GetComponent <Collider2D>(), true); Physics2D.IgnoreCollision(GetComponent <CircleCollider2D>(), ladder.IgnoredPlatformBottom.GetComponent <Collider2D>(), true); _Rb2d.velocity = new Vector2(0, _Rb2d.velocity.y); } } }
// when on a trigger void OnTriggerStay2D(Collider2D other) { // TODO: it would be more efficient to move this to the ladder object, since it will have few OnTriggerStay2D events to check LadderZone ladder = other.GetComponent <LadderZone>(); if (ladder) { if (verticalInput()) { setLayer(ladderLayer); } } else if (_character.gameObject.layer == ladderLayer) { setLayer(_initialPhysicsLayer); } }
public void SetLadderZone(LadderZone z) { ladderZone = z; }
public void SetLadderZone(LadderZone zone) { m_OnLadderState.AreaZone = zone; }