【发布时间】:2014-06-16 15:58:07
【问题描述】:
我正在制作一个 2D 游戏。我有一个角色和一些瓷砖。瓷砖是 1 x 1 单位,并放置在场景中。
我使用以下代码来移动我的角色。这是我的角色(“英雄”)的代码:
public class Hero : MonoBehaviour {
private Vector2 speedX = new Vector2(1, 0);
private Vector2 speedY = new Vector2(0, 1);
void Update () {
if(Input.GetKey("left")) {
rigidbody2D.MovePosition(rigidbody2D.position - speedX * Time.deltaTime);
} else if(Input.GetKey("right")) {
rigidbody2D.MovePosition(rigidbody2D.position + speedX * Time.deltaTime);
} else if(Input.GetKey("up")) {
rigidbody2D.MovePosition(rigidbody2D.position + speedY * Time.deltaTime);
} else if(Input.GetKey("down")) {
rigidbody2D.MovePosition(rigidbody2D.position - speedY * Time.deltaTime);
}
}
}
它可以工作,但它没有按预期移动。当我按一次箭头键时,它会移动大约 0.2 个单位。如何让玩家每个键向下移动 1 个单位?
我错过了什么?
【问题讨论】:
-
你为什么使用 RigidBody2D?你会在游戏中使用任何物理吗?
-
我需要在游戏中进行碰撞检测
标签: unity3d unityscript