这是我在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);
}
}
答案 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