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);
}
}
我正在制作一个自上而下的 '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);
}
}