Beispiel #1
0
    public void TryToTeleport(Movable _movable)
    {
        if (isXWarp)
        {
            // Teleport if exit map
            if (Mathf.Sign(transform.position.x - _movable.transform.position.x) == Mathf.Sign(transform.position.x - teleportTransform.position.x))
            {
                return;
            }

            _movable.transform.position = new Vector3(teleportTransform.position.x, isXAndYChanged ? teleportTransform.position.y : _movable.transform.position.y, _movable.transform.position.z);
            _movable.Flip();
        }
        else
        {
            // Teleport if exit map
            if (Mathf.Sign(transform.position.y - _movable.transform.position.y) == Mathf.Sign(transform.position.y - teleportTransform.position.y))
            {
                return;
            }

            _movable.transform.position = new Vector3(_movable.transform.position.x, teleportTransform.transform.position.y, _movable.transform.position.z);
        }

        GameManager.PlayClipAtPoint(GameManager.I?.WarpSound, _movable.transform.position);
    }