Вопрос:
Я пытаюсь запустить простой скрипт, чтобы получить объект для продвижения вперед в единстве.
Мой код:
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;