Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么物体向下移动而不是向上移动?_C#_Unity3d - Fatal编程技术网

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

C# 为什么物体向下移动而不是向上移动?,c#,unity3d,C#,Unity3d,它看起来像是向下移动,或者方向是向后移动,而不是向前移动。 我试着把-50改成+50 objectstoMove[i].transform.position.x - 50 我还试着在开头加上负号: -objectstoMove[i].transform.position.x + 50 但到目前为止,一切都不起作用。物体移动缓慢而平稳,但我无法控制方向 using System.Collections; using System.Collections.Generic; using Unity

它看起来像是向下移动,或者方向是向后移动,而不是向前移动。 我试着把-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);
            }
        }
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共类对象:单行为
{
公共浮动速度=3f;
私有游戏对象[]对象移动;
//用于初始化
公共void Init()
{
objectstoMove=GameObject.FindGameObjectsWithTag(“Objecttomove”);
}
//每帧调用一次更新
无效更新()
{
if(objectstoMove!=null)
{
浮动步长=速度*时间.deltaTime;
for(int i=0;i
这是:

new Vector3(0, objectstoMove[i].transform.position.x + 50, 0)
创建一个只指定了Y分量的新向量。例如,如果希望对象向右移动,应按如下方式进行:

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

创建一个只指定了Y分量的新向量。例如,如果希望对象向右移动,应按如下方式进行:

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

您将
x
值放入
y
向量3(x,y,z)

一定是这样

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

您将
x
值放入
y
向量3(x,y,z)

一定是这样

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

您是否可以分享更多关于您正在制作的产品的信息?否则,您所做的移动仅在X轴上,您还必须在2D环境中操作y值,在3D环境中操作z值。为什么要在
y
位置上编写
objectstoMove[i].transform.position.X
<代码>“新矢量3(0,objectstoMove[i].transform.position.x+50,0)”您是否可以分享有关正在制作的内容的更多信息?否则,您所做的移动仅在X轴上,您还必须在2D环境中操作y值,在3D环境中操作z值。为什么要在
y
位置上编写
objectstoMove[i].transform.position.X
<代码>“新矢量3(0,objectstoMove[i].transform.position.x+50,0)”