Обратите внимание на Vector3.Lerp. Он возвращает точку, вычисленную с помощью линейной интерполяции.
Положим, у вас есть точка А(0;0) и B(1;1). С помощью метода Lerp вы получите точку с прямой AB, в соответствии с шагом. https://docs.unity3d.com/ScriptReference/Vector3.L...
Ну или просто уменьшить значение в вашем transform.Translate.
Привет.
Как уже указали, твой newCube - это GameObject, а не CubePos. GameObject - такая хитрая штука, которая может иметь поведение разных классов и структур. Поэтому чтобы вызвать метод CubePos нужно обратиться к соответствующему компоненту в GameObject.
То есть, строчка будет выглядеть не
newCube.setVector(cubeToPlase.position);
а
newCube.GetComponent'треугольная скобка'CubePos'треугольная скобка'().setVector(cubeToPlase.position);
Привет!
Если речь идёт об объекте, то нужно создать класс с полем 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(вектор перемещения)
Положим, у вас есть точка А(0;0) и B(1;1). С помощью метода Lerp вы получите точку с прямой AB, в соответствии с шагом.
https://docs.unity3d.com/ScriptReference/Vector3.L...
Ну или просто уменьшить значение в вашем transform.Translate.