Я пытаюсь создать игру типа SHMUP, в которой мир непрерывно движется вперед, пока космический корабль и камера игрока остаются на месте.Я создал пустой игровой объект с именем Moving World и прикрепил к нему следующий скрипт:
public class movingWorldController : MonoBehaviour
{
private float movementSpeed = 5f;
void Update()
{
transform.position = transform.position + new Vector3(0, 0, movementSpeed * Time.deltaTime);
}
}
Затем я добавил камеру и космический корабль в качестве дочерних объектов этого объекта, и в результате они действительно перемещаются с помощьюдвижущийся объект мира.Тем не менее, у меня также есть сценарий, прикрепленный к космическому кораблю, чтобы он мог двигаться в соответствии с входом игрока, и если я включу сценарий выше, корабль перестает отвечать на вход игрока.Сценарий корабля выглядит следующим образом:
public class ShipController : MonoBehaviour
{
public Rigidbody rb;
public float moveSpeed = 5f;
private Vector3 movement;
void Update()
{
movement.x = Input.GetAxisRaw("Horizontal");
movement.z = Input.GetAxisRaw("Vertical");
}
private void FixedUpdate()
{
rb.MovePosition(rb.position + movement * moveSpeed * Time.deltaTime);
}
}
Контроллер корабля отлично работает, когда сценарий перемещения по миру отключен, поэтому я подозреваю, что сценарий мира каким-то образом перезаписывает позицию космического корабля.Как я могу решить это?