如何将此Unityscript转换为C#?[请忽略]
本文关键字:Unityscript 转换 | 更新日期: 2023-09-27 18:25:07
这是我在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);
}
}
使用此
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);
}
}
不能像对x值所做的那样更改Vector3的一个值。您需要创建一个新的Vector3并将其分配给transform.position
您不需要"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变量。