unity学习笔记-换装系统

换装系统

引用

https://www.bilibili.com/video/BV1et41197Qm?from=search&seid=15209112079617855869

ui

主要使用unity原本的组件toggle,toggle group
因为一开始没有系统的学习,在观看了某b站的教学视频后发现可以用toggle这个相关的组件可以代替之前自己手写的代码,如重复点击等功能,toggle相关组件都已经在内部实现了

创建一个父对象,在里面搭建换装系统的界面
在这里插入图片描述

这是我自己设计的界面,上面是一个toggle group,下面是一个togglegroup,上面是选择部位的按键,用一个toggle group进行控制,然后给上面部位的ui添加toggle,可以看情况给toggle里的grahic,添加的话当你点击到这个ui的时候他就会出现你拖进的图标,选择其他ui时那个图标就会消失
在这里插入图片描述
然后制作换装系统下面的ui,下面的就是不同的部位的装备预览图,每个部位都有自己的panel,通过把对应的panel拖入上面ui的on value changed里,然后设置gameobject.setactive,就可以实现当点击了上面的ui时,下面对应的装备预览图的ui就会显示出来
使用unity原生的组件来实现第一效率快,第二规范,第三省去了很多调试的时间,这也充分体现了系统学习和半路出家的程序员的区别~
这个方法可以用来优化很多前面有关按键的方法代码(不用再辛辛苦苦地用transform.getchild去显示界面),提升性能和体验

UI代码

基本没有,最多添加了一个点击事件,用这个来获得点击的当前ui的名称,通过这个名称获得ui对应的装备信息


    public void OnValueChange(bool isOn)
    {
        if (isOn)
        {
            Debug.Log(name);
        }
    }

创建脚本,然后挂载到按键上

换装逻辑

视频里的方法是在resources里添加模型的两个文件,一个是源文件,一个是去掉mesh只剩下骨骼的文件
然后通过遍历源文件里的骨骼,骨骼里的skinmesh和材质,保存在内存中(字典的储存方式),保存的方式是根据他们的名称,然后通过ui获得的名称知道用户点击的是哪个装备,然后去替换对应的字典里的骨骼,skinmesh和材质,从而实现换装的功能

换装实现

由于尚未获得模型动画,所以目前只能先设计好ui界面,等动画完成后才能开始实现换装(因为动画师也是第一次接触换装,所以有关换装的格式可能会和视频教程里的有所出入,所以不打算先开始写代码,具体情况具体分析比较好,减少无用功~)

换装代码

日后更新

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淳杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值