26821人加入学习
(150人评价)
Unity2D 初级案例 - 坦克大战(Unity2017.1)

制作于2017年12月23日

价格 免费

这样写会出现一个问题,比如玩家如果同时按上和左建,坦克会斜着移动,所以建议将transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime,Space.World);

transform.Translate(Vector3.up * h * moveSpeed * Time.deltaTime,Space.World);这两句写在if里面,且在交换精灵之后应该更合理,先换图再移动。

if (h < 0)//左边
        {
            sr.sprite = tankSprite[3];
            transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
        }
        else if(h > 0)
        {
            sr.sprite = tankSprite[1];
            transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime, Space.World);
        }
        else if(v > 0)
        {
            sr.sprite = tankSprite[0];
            transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
        }
        else if(v < 0)
        {
            sr.sprite = tankSprite[2];
            transform.Translate(Vector3.up * v * moveSpeed * Time.deltaTime, Space.World);
        }
        else
        {
            return;
        }

[展开全文]

通过建立访问数组来解决图片方向的问题

[展开全文]

代码控制图片移动切换:

private SpriteRenderer sr;

public Sprite[] tankSprite;

private void Awake(){

sr=GetComponent<spriteRenderer>();

}

if(h<0)

{

sr.sprite=tankSprite[3];

}

else if(h>0)

{

sp.sprite=tankSprite[1]

}

[展开全文]

授课教师

SiKi学院老师

课程特色

图文(2)
视频(31)
下载资料(1)