有人可以将这个Unityscript转换为C#吗?

时间:2014-09-30 11:22:10

标签: c# unity3d unityscript

enter image description here

这是我在C#中的代码错误吗?:

using UnityEngine;
using System.Collections;

public class qwe : MonoBehaviour {

    void  Update (){
        float xP = Input.GetAxis ("Horizontal")*Time.deltaTime * 20; 
        transform.Translate(Vector3 xe = new Vector3(xP,0,0));
        transform.position.x = Mathf.Clamp (transform.position.x, -10, 10);
    }
}

3 个答案:

答案 0 :(得分:1)

使用此

using UnityEngine;
using System.Collections;

public class qwe : MonoBehaviour {

    void  Update (){
        float xP = Input.GetAxis ("Horizontal")*Time.deltaTime * 20;
        Vector3 xe = new Vector3(xP,0,0);
        transform.Translate(xe);
        float x = Mathf.Clamp (transform.position.x, -10, 10);
        transform.position = new Vector3(x,transform.position.y,transform.position.z);
    }
}

答案 1 :(得分:0)

你不需要“Vector3 xe =” 试试这个:

float xP = Input.GetAxis ("Horizontal")*Time.deltaTime * 20; 
transform.Translate(new Vector3(xP,0,0));
transform.position.x = Mathf.Clamp (transform.position.x, -10, 10);

UPD:哦,Cattwood是对的 - 你不能只修改x。您应该创建新的Vector3变量。

答案 2 :(得分:0)

您无法更改Vector3的一个值,就像您使用x值一样。您需要创建一个新的Vector3并将其分配给transform.position