5396人加入学习
(6人评价)
Unity3D FPS案例 - 消灭病毒

制作完成于2021年9月29日,基于Unity2019.4

价格 ¥ 552.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

解决切枪bug不够完善,

假定枪械数量>3。

0,1,2,3

拾取0,2后鼠标滑轮依旧无法完成切枪。

目前知识滴优化思路:

1.自动切枪逻辑不变

2.将武器ID列表按照从小到大的顺序排序,并转化为一个数组。手动切枪时根据curIndex和%运算符实现循环切枪。

public void ChangeCurWeapon(bool autoChange = false)
    {
        //todo 拾取武器的id不连续时无法切枪bug √
        if (autoChange)
        {
            //第一次拾取时,切换最新拾取武器
            ChangeWeapon(weaponDict.Keys.Last());
        }
        else
        {
            var weaponIDs = weaponDict.Keys.OrderBy(id => id).ToArray();//将key小大排序形成数组
            var curIndex = Array.IndexOf(weaponIDs, curWeaponID);
            if (Input.GetAxis("Mouse ScrollWheel") > 0)//向上滑
            {
                curIndex = (curIndex + 1) % weaponIDs.Length;
                ChangeWeapon(weaponIDs[curIndex]);
            }
            else if (Input.GetAxis("Mouse ScrollWheel") < 0)//向下滑
            {
                curIndex = (curIndex + weaponIDs.Length - 1) % weaponIDs.Length;
                ChangeWeapon(weaponIDs[curIndex]);

            }
        }
    }

 

[展开全文]

不按照字典的顺序拾取武器的时候,切换武器会发生空值。不知到有没有修

[展开全文]

授课教师

SiKi学院老师

课程特色

视频(250)
下载资料(2)