public override void Walk(Vector2 input) { lastInput = input; if (currentNode == null) { base.Walk(input); currentVelocity = rigidBody.velocity; } else { currentVelocity = maxWalkSpeed * input; setFacing(input); animator.UpdateMovementAnim(Facing, currentVelocity.magnitude); transform.position = currentTunnel.MoveInDirection(ref currentNode, transform.position, currentVelocity * Time.deltaTime); if (currentNode == null) { currentTunnel = null; rigidBody.bodyType = RigidbodyType2D.Dynamic; } } }
private void OnTriggerStay2D(Collider2D collision) { if (currentNode != null) { return; } RatTunnel tunnel = collision.GetComponent <RatTunnel>(); if (tunnel == null) { return; } RatTunnelNode entry = tunnel.GetEntryNode(transform.position, lastInput); if (entry != null) { currentNode = entry; currentTunnel = tunnel; rigidBody.bodyType = RigidbodyType2D.Static; } }