Unity 不接受我的浮动(JS,2d)

Unity won't accept my float (JS, 2d)

我正在制作一个自上而下的 'atari' 类型的游戏,最近我遇到了一些小麻烦,我正在使用 transform.position 来更改我在屏幕上的坐标,但是使用 GetKey 移动速度有点太快了,所以我尝试使用浮点数来减慢进度并且它现在根本不动......这是我的代码

 #pragma strict
 var xCoor = 0;
 var yCoor = 0;    


 function Start () {
 }

 function Update () {    

     if(Input.GetKey (KeyCode.D))
         xCoor += 0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.W))
         yCoor += 0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.A))
         xCoor += -0.5;
         transform.position = Vector2(xCoor,yCoor);
     if(Input.GetKey (KeyCode.S))
         yCoor += -0.5;
         transform.position = Vector2(xCoor,yCoor);
 }

你可能会告诉我我是Unity的新手,所以如果有更好的方法,请分享!谢谢 ;)

我不确定,但我相信你的 xCoor 是 int 类型的。因此,当您尝试向其添加浮点数时,它不会改变。

将 xCoor 和 yCoor 的定义从 0 改为 0.0,看看是否可行。

#pragma strict
var xCoor = 0.0;
var yCoor = 0.0;   

此外,正如评论中所指出的,您确实应该在 if 语句后放置一些大括号,以免得到不需要的结果。

function Update () {    
    if(Input.GetKey (KeyCode.D)) {
        xCoor += 0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.W)) {
        yCoor += 0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.A)) {
        xCoor += -0.5;
        transform.position = Vector2(xCoor,yCoor);
    }

    if(Input.GetKey (KeyCode.S)) {
        yCoor += -0.5;
        transform.position = Vector2(xCoor,yCoor);
    }
}