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

时间:2015-04-14 15:45:10

标签: unity3d unityscript

我正在做一个自上而下的'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,所以如果有更好的方法,请分享!谢谢;)

1 个答案:

答案 0 :(得分:2)

我不确定,但我相信你的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);
    }
}