Unity2D: как заставить объект двигаться вперед

Вопрос: Я пытаюсь запустить простой скрипт, чтобы получить объект для продвижения вперед в единстве. Мой код: using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveToHold : MonoBehaviour { private float traveledDistance; public int moveSpeed = 10; private bool isMoving; public GameObject Aircraft; // Use this for initialization void Start () { } // Update is

Вопрос:

Я пытаюсь запустить простой скрипт, чтобы получить объект для продвижения вперед в единстве.

Мой код:

using System.Collections; using System.Collections.Generic; using UnityEngine; public class MoveToHold : MonoBehaviour { private float traveledDistance; public int moveSpeed = 10; private bool isMoving; public GameObject Aircraft; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (isMoving == true) { //Aircraft.transform.position += transform.forward * Time.deltaTime * moveSpeed; Aircraft.transform.position += transform.forward * moveSpeed * Time.deltaTime; } } public void move () { isMoving = true; Debug.Log(isMoving); } }

Насколько я вижу, преобразование должно работать.

Есть идеи?

Лучший ответ:

Попробуйте изменить:

Aircraft.transform.position += transform.forward * moveSpeed * Time.deltaTime;

к:

Aircraft.transform.position += transform.right * moveSpeed * Time.deltaTime;

Иногда с единством2D передняя ось является Z, поэтому вы нажимаете ее внутри оси Z, которую вы не увидите. Правое перемещает его по оси x.

Ответ №1

Я думаю, вам нужно применить свою позицию к объекту RigidBody, а не к самолету. Если я правильно догадался, это должен быть ваш самолет. Пытаться:

Aircraft.parent.transform.position += transform.forward * moveSpeed * Time.deltaTime;

Оцените статью
Добавить комментарий