Как перемещать камеру, если курсор находится у края Unity

Рейтинг: 1Ответов: 1Опубликовано: 09.01.2023

Всем добра. Мне нужно сделать так, чтобы можно было перемещать камеру, например влево. Перемещается же она в том условии, если курсор находится у левого края. Само собой нужно будет двигать и в другие стороны(право, верх, низ), но левой стороны как примера достаточно. Из кода только определение позиции мыши

private PlayerInput _playerInput;

    private void Awake()
    {
        _playerInput = new PlayerInput();
        _playerInput.Enable();
    }
    private void Update()
    {
        Vector2 moveMousePos = _playerInput.Player.MoveCameraPos.ReadValue<Vector2>();
    }

Ответы

▲ 1Принят

GameObject -> UI -> Image. Автоматически появится Canvas и изображение. Растянуть изображение левому краю Canvas. В Rect Transform в инспекторе можно указать, чтобы оно растягивалось и прилипло к левому краю экрана. При изменении разрешения экрана оно будет автоматически перемещаться к краю экрана. Но это чисто для удобства. В камеру повесить скрипт с кодом:

public float VelocityMove; // Скорость движения - указать в инспекторе
public Transform Left; //Изображение слева - указать в инспекторе

void Update()
if (Input.mousePosition.x < Left.position.x)
{
    transform.position += new Vector3(-VelocityMove, 0, 0);
}

Остальные стороны сам догадаешься.