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 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;

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