unity从0开始摸鱼日记3,tkDemo1

3月5日

今天依旧没有开学

开始学习做一个新的项目,坦克大战demo项目

首先是很普通的右手就行的构建游戏场景,背景色调为黑色,将镜头设为5:4,camera的size设为8.5,这两个值在自己设计游戏时需要反复实验修改,得到最好的用户体验。

导入的图片资源需要注意的要点:

1.需要将图片资源的Texture Type设为Sprite

2.如果是多个图片的裁剪图集,还需要将Sprite Mode设为multipl

关于如何将图集切割为多张图片:

在图片的Inspector中,点击Sprite Editor选项,即可进入切割界面。

然后是创建所有需要的Prefabs,Animation,AnimatorController,这也是很常规的内容,不做赘述。

接下来首先开始编写脚本控制player的移动,创建player脚本,在脚本中进行操作

void Update()
    {
        float h = Input.GetAxisRaw("Horizontal");
        float v = Input.GetAxisRaw("Vertical");
        //移动方法,(x轴/y轴判别*输入参数*移动速度*时间*参考坐标系)
        transform.Translate(Vector3.right * h * MoveSpeed * Time.deltaTime, Space.World);
        transform.Translate(Vector3.up * v * MoveSpeed * Time.deltaTime, Space.World);

    }

这里要注意,和之前的移动方法是两种,之前的是通过刚体以及改变目标位置的方式来移动,这次是直接通过移动方法来移动

然后是坦克的转向问题,有两种解决方案,第一种是在转向时调用相应的朝向的素材图片,第二种是直接使图片绕Z轴进行旋转

这里先运用第一种方法,因为prefab用哪张图片的显示是通过Sprite Renderer渲染器控制的,因此只需要在脚本中得到渲染器组件的引用,然后再转向的时候更改成对应的图片素材即可

获得组件和对应图片

private SpriteRenderer sr;
    public Sprite[] TankSprite; 

    private void Awake()
    {
        sr = GetComponent<SpriteRenderer>();
    }

判断及旋转

        if(h < 0)
        {
            sr.sprite = TankSprite[3];
        }
        else if (h > 0)
        {
            sr.sprite = TankSprite[1];
        }
        if (v < 0)
        {
            sr.sprite = TankSprite[2];
        }
        else if (v > 0)
        {
            sr.sprite = TankSprite[0];
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值