C# 无法将类型int'隐式转换为unityengine.vector3'

C# 无法将类型int'隐式转换为unityengine.vector3',c#,unity3d,unity5,C#,Unity3d,Unity5,嗨,我是unity的新成员,所以这是我的代码: using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () {

嗨,我是unity的新成员,所以这是我的代码:

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour {

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

        var pos = transform.position;
        pos.x += 1;
        transform.position = pos;
        string ss = "hellow";

        if(pos>100){
            print (ss);
        }
    }
}

但在if条件行中给出此错误:无法将int类型隐式转换为unityengine.vector3'

transform.position的类型为vector3。您应该在if条件内执行pos.x>100而不是pos>100。

transform.position是Vector3类型。您应该在if条件中执行pos.x>100而不是pos>100。

您在这里犯了两个错误

首先,不能一次修改单个轴的值(用C表示)。必须重新指定整个向量

因此,pos.x+=1;这是错误的,应该是:

pos = new Vector3(pos.x + 1, pos.y, pos.z);

最后,测试ifpos>100{也是错误的:您应该取一个特定轴的值来检查我认为:ifpos.x>100{。

您在这里犯了两个错误

首先,不能一次修改单个轴的值(用C表示)。必须重新指定整个向量

因此,pos.x+=1;是错误的,应该是:

pos = new Vector3(pos.x + 1, pos.y, pos.z);

最后,测试ifpos>100{也是错误的:你应该取一个特定轴的值来检查我认为:ifpos.x>100{.

是的-你期望pos>100意味着什么?pos是一个位置,一个向量3…位置大于100意味着什么?试试这个:如果pos.x>100{…}是的,你认为pos>100意味着什么?pos是一个位置,一个向量3…一个位置大于100意味着什么?试试这个:如果pos.x>100{…}我只使用pos.x+=1,我的代码工作得很好。那么你能告诉我什么是vector3或vector1,vector2吗?pos.x+=1;是完全好的吗?一般来说,不变性有助于对代码进行推理。诚然,在你看到使用的好处之前,这一切看起来都有点学术性。我只使用pos.x+=1,我的代码工作得很好。那么你能告诉我什么是vector3或vector1,ve吗ctor2!?pos.x+=1;是非常好的。一般来说,不变性有助于对代码进行推理。诚然,在您看到使用中的好处之前,这一切似乎都有点学术性