Сделал движение через new Vector3, и, вроде бы все нормально, но задался вопросом — а можно так вообще?

Да, в C# можно использовать класс Vector3 для реализации движения объектов в трехмерном пространстве.

Класс Vector3 предоставляет удобные методы и свойства для работы с векторами, которые представляют собой трехмерные координаты. Он включает в себя операторы для выполнения арифметических операций с векторами, таких как сложение, вычитание, умножение на скаляр и т.д.

Для реализации движения объекта через new Vector3 необходимо установить начальное положение объекта, скорость и направление движения. Затем, используя методы и операторы класса Vector3, можно обновлять координаты объекта в каждом кадре игры.

Пример использования Vector3 для движения:

using UnityEngine;

public class ObjectMovement : MonoBehaviour
{
    public float speed = 5f;
    private Vector3 direction;

    private void Start()
    {
        // Установить начальное направление движения (например, вперед)
        direction = Vector3.forward;
    }

    private void Update()
    {
        // Изменить положение объекта, основываясь на скорости и направлении
        transform.position += direction * speed * Time.deltaTime;
    }
}

В данном примере объект будет двигаться вперед с указанной скоростью. Метод Update() вызывается каждый кадр игры, и в нем происходит изменение положения объекта с использованием оператора умножения на время прошедшее с предыдущего кадра (Time.deltaTime).

Таким образом, используя класс Vector3 и операторы, можно легко реализовать движение объектов в трехмерном пространстве в C#.