【发布时间】:2015-04-15 07:07:50
【问题描述】:
我正在制作一个自上而下的“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 新手,所以如果有更好的方法,请分享!谢谢;)
【问题讨论】:
-
可能不相关,但您在 if 中缺少大括号。应该是这样的: if(Input.GetKey (KeyCode.D)) { xCoor += 0.5; transform.position = Vector2(xCoor,yCoor); }
-
无论哪种方式都可以,这是我整理的快速代码,我知道括号是很好的做法
-
@DanielBickerdike 您的代码有效,但几乎是偶然的,哈哈。由于您没有任何括号,因此您始终设置 transform.position (无论条件如何)。
标签: unity3d unityscript