Unity2D:如何让对象前进

时间:2017-03-13 23:07:38

标签: c# scripting 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);
    }
}

据我所知,transform.position应该有效。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

尝试更改:

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

到:

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

有时使用unity2D,前轴是Z,所以你将它推到Z轴内,你将看不到它。右边会在x轴上移动它。

答案 1 :(得分:2)

我认为您需要将您的位置应用于RigidBody对象而不是飞机。如果我猜对了,那应该是你飞机的父母。尝试:

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