不能隐式转换类型为'unityengine.vector3& # 39;

本文关键字:unityengine vector3 转换 类型 不能 | 更新日期: 2023-09-27 18:01:33

嗨,我是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'

不能隐式转换类型为'unityengine.vector3& # 39;

transform。position的类型为Vector3。您应该在if条件中使用pos.x> 100而不是pos> 100。

你犯了两个错误。

首先,您不能在c#中一次修改单个轴的值。你必须重新赋值整个向量

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

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

最后,测试if(pos>100){是错误的:你应该采取一个特定的轴的值来检查(我认为:if(pos.x>100){)。