为什么物体向下移动而不是向上移动?

时间:2018-11-16 06:52:19

标签: c# unity3d

似乎向下或方向在向后移动而不是向前移动。 我尝试制作-50而不是+ 50

objectstoMove[i].transform.position.x - 50

我还尝试在开始时加上减号:

-objectstoMove[i].transform.position.x + 50

但是到目前为止没有任何效果。这些物体正在缓慢而平滑地移动,但是我无法控制方向。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveObjects : MonoBehaviour
{
    public float speed = 3f;

    private GameObject[] objectstoMove;

    // Use this for initialization
    public void Init()
    {
        objectstoMove = GameObject.FindGameObjectsWithTag("Objecttomove");
    }

    // Update is called once per frame
    void Update()
    {
        if (objectstoMove != null)
        {
            float step = speed * Time.deltaTime;
            for (int i = 0; i < objectstoMove.Length; i++)
            {
                objectstoMove[i].transform.position = Vector3.MoveTowards(objectstoMove[i].transform.position, new Vector3(0, objectstoMove[i].transform.position.x + 50, 0), step);
            }
        }
    }
}

2 个答案:

答案 0 :(得分:3)

您将x值放入y的{​​{1}}值

Vector3(x,y,z)

必须是

new Vector3(0, objectstoMove[i].transform.position.x + 50, 0), step);

答案 1 :(得分:1)

此:

new Vector3(0, objectstoMove[i].transform.position.x + 50, 0)

创建一个仅分配了 Y 分量的新矢量。例如,如果您想让对象向右移动,则应该这样:

myObject.position = myObject.position + Vector3.right * speed * Time.deltaTime;