不能隐式转换类型int'到unityengine.vector3'

时间:2016-08-10 07:27:37

标签: c# unity3d unity5

嗨,我是团结的新人,所以这是我的代码:

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

但是在条件行中给我这个错误:不能隐式转换类型int'到unityengine.vector3'

2 个答案:

答案 0 :(得分:2)

transform.position的类型为Vector3。你应该做pos.x> 100而不是pos> if条件中的100。

答案 1 :(得分:2)

你在这里犯了两个错误。

首先,您无法在C#中一次修改单个轴的值。你必须重新分配整个矢量。

所以,pos.x += 1;是错的,它应该是:

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

最后,测试if(pos>100){也是错误的:您应该检查特定轴的值(我认为:if(pos.x>100){)。