Unity实现换装系统
程序员文章站
2024-01-28 13:48:52
unity如何实现换装系统,供大家参考,具体内容如下1.创建sprite library asset2.添加新目录label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入sprite中3...
unity如何实现换装系统,供大家参考,具体内容如下
1.创建sprite library asset
2.添加新目录
label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入sprite中
3.添加组件
给需要换装的部位添加sprite resolver组件(如头部换装,就在头部对象挂载组件)
选择目录名,就会出现之前library asset中拖拽的图片内容,点击不同图片可以预览效果(如果出现装备位置偏移,需调整图片的pivot)
4.通过代码实现换装
小笔记:
1).unityengine.experimental.u2d.animation 记得写
2).start函数中getcomponents的s不要忘,也可以用findobjectsoftype
3).如果是整体换套装,就将脚本挂载到player对象上,如果只是单独换部件如武器,就单独挂载到武器对象上
using system.collections; using system.collections.generic; using unityengine; using unityengine.experimental.u2d.animation; public class riflespritecontrol : monobehaviour { public list<spriteresolver> spriteresolvers = new list<spriteresolver>(); // start is called before the first frame update void start() { foreach(var resolver in findobjectsoftype<spriteresolver>()) { //将遍历到的所有spriteresolver添加到list中 spriteresolvers.add(resolver); } } // update is called once per frame void update() { if (input.getkeydown(keycode.e))//按e切换到ak47 { foreach (var resolver in this.getcomponents<spriteresolver>()) { //setcategoryandlabel(目录名,步骤2中所填写的label),以获取相应的图片 resolver.setcategoryandlabel(resolver.getcategory(), "ak47"); } } if (input.getkeydown(keycode.r))//按r切换到mp5 { foreach (var resolver in this.getcomponents<spriteresolver>()) { resolver.setcategoryandlabel(resolver.getcategory(), "mp5"); } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。