Задать вопрос
  • Как сделать плавное передвижение?

    @kajf
    Обратите внимание на Vector3.Lerp. Он возвращает точку, вычисленную с помощью линейной интерполяции.
    Положим, у вас есть точка А(0;0) и B(1;1). С помощью метода Lerp вы получите точку с прямой AB, в соответствии с шагом.
    https://docs.unity3d.com/ScriptReference/Vector3.L...

    Ну или просто уменьшить значение в вашем transform.Translate.
  • Ошибка в Unity (c#), как исправить?

    @kajf
    Привет.
    Как уже указали, твой newCube - это GameObject, а не CubePos. GameObject - такая хитрая штука, которая может иметь поведение разных классов и структур. Поэтому чтобы вызвать метод CubePos нужно обратиться к соответствующему компоненту в GameObject.
    То есть, строчка будет выглядеть не
    newCube.setVector(cubeToPlase.position);
    а
    newCube.GetComponent'треугольная скобка'CubePos'треугольная скобка'().setVector(cubeToPlase.position);

    (Парсер считает скобки за тег)
  • Как сделать так чтобы мешь двигалась вперед, а по достижению определенной точки возвращалась в исходное положение?

    @kajf
    Привет!
    Если речь идёт об объекте, то нужно создать класс с полем Vector3 startPosition.
    В методе старт нужно запомнить начальную позицию, то есть написать:
    startPosition = this.transform.position

    В методе update сделать проверку
    if this.transform.position == определённаяТочка{
    this.transform.position = startPosition
    }

    Но следует учитывать, что это не сработает практически с вероятностью 99%, потому что очень редко в пространстве объект примет ту позицию, которую вы заложите (разве что, вы ТОЧНО знаете, что объект её достигает с точностью до миллионых долей (а то и больше))
    Поэтому можно написать что-то вроде
    if this.transform.position.x < точка.x
    && this.transform.position.y < точка.у
    && this.transform.position.z < точка.z{
    this.transform.position = startPosition
    }
    (Знаки неравенства поставить нужные)

    Движение вперёд можете реализовать следующими способами:
    1. С помощью transform.Translate
    2. Передвигая координату z. Будет что-то вроде
    this.transform.position = new Vector3( this.transform.position.x,
    this.transform.position.y,
    this.transform.position.z + 1f)
    3. Повесить на объект компонент Rigidbody. Затем в скрипте взять её в предварительно созданное поле в методе Start:
    переменная = GetComponent()

    и в методе Update:
    переменная.MovePosition(вектор перемещения)

    А вообще, лучше почитайте/посмотрите что-нибудь по программированию. Вопрос очень простой, зря вы пренебрегаете оф. документацией (https://docs.unity3d.com/ScriptReference/index.html) и гайдами.