如何将此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);
    }
}

如何将此Unityscript转换为C#?[请忽略]

使用此

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变量。