我正试图在unity2d制作神奇宝贝游戏。我设法进行网格运动,但是我没有关于如何在不移动的情况下面向方向的线索(停留在同一个地方以及当A或W或S或D在面向方向而没有移动时被按下时)。
到目前为止,这就是我所拥有的:
c.encrypt(a+b)
非常感谢!
答案 0 :(得分:2)
我有完全相同的问题,这就是我设法做到的;) 这条线
if (pressWalkTime >= 8) {
在开始向该方向移动之前,可用于确定按钮可被按下的帧数。
if (horizontal != 0 || vertical != 0) {
if (pressWalkTime != 0 || !direction.Equals (new Vector2 (horizontal, vertical))) {
pressWalkTime++;
if (pressWalkTime >= 8) {
pressWalkTime = 0;
}
} else {
pressWalkTime = 0;
}
direction = new Vector2 (horizontal, vertical);
if (pressWalkTime == 0 && base.AttemptMove (horizontal, vertical)) {
position += new Vector2 (horizontal, vertical);
}
if (horizontal == 1)
animator.Play ("Walk-Right");
if (horizontal == -1)
animator.Play ("Walk-Left");
if (vertical == 1)
animator.Play ("Walk-Up");
if (vertical == -1)
animator.Play ("Walk-Down");
} else
pressWalkTime = 0;
}
你也应该注意到这可能无法处理转弯。这意味着如果你已经朝一个方向走,然后转入另一个方向,你必须再等待8帧才能开始移动。这个问题将在tommorow解决,但我相信你可以自己做;)
pressWalkTime是写入此逻辑的类的属性,并用0初始化。
答案 1 :(得分:1)
检查您是否已经面向方向。如果没有,则旋转您的对象。如果您已经面向按键将您移动的方向,则移动播放器/对象。