Unity 2D:面向方向而不移动

时间:2017-04-04 21:49:46

标签: c# unity5 unity2d

我正试图在unity2d制作神奇宝贝游戏。我设法进行网格运动,但是我没有关于如何在不移动的情况下面向方向的线索(停留在同一个地方以及当A或W或S或D在面向方向而没有移动时被按下时)。

到目前为止,这就是我所拥有的:

c.encrypt(a+b)

非常感谢!

2 个答案:

答案 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)

检查您是否已经面向方向。如果没有,则旋转您的对象。如果您已经面向按键将您移动的方向,则移动播放器/对象。

相关问题