GameEnvironment - 2d. Физцис нет.
У меня есть поле с тегами gameObject (gO), которое автоматически перемещается из точки A в точку B. Скрипт, прикрепленный к нему, имеет код ff:
transform.position = Vector3.Lerp (transform.position, targetPos, (Time.time-startTime)*0.0001f);
Примечание: это движение медленное.
Я также добавил к нему raycast2d, который в основном говорит, что если он попадет в другое поле, он остановится в своей текущей позиции.
if(hit){
if (hit.collider.tag == "box") {
canControl = false;
canMove = false;
canSpawn();
}
} else {
canMove = true;
}
и этот, и приведенный выше код находятся в обновлении boxMovementScript.
На данный момент все хорошо, когда я удалил ящик перед другим ящиком, последний продолжает двигаться к targetPos. Когда ящик преграждает путь, он останавливается в своем текущем положении.
Моя проблема возникает, когда я пытаюсь управлять коробкой, чтобы она двигалась быстрее. Если перед ним находится другой ящик, он просто обходит этот ящик, и попадание никогда не регистрируется. Мой код правого хода ниже. Это в моем пустом обновлении GameOBjectControllerScript.
if (Input.GetKeyDown(KeyCode.D) && rX !=-100){
box.transform.position = Vector3.Lerp(atom.transform.position, rightendpos, 1);
}
правая сторона здесь в основном является позицией vector3, которая находится в двух квадратах от ее текущей позиции.
Как мне переместить свой gameObject (box), чтобы он останавливался при попадании в другое поле?