欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity实现换装系统

程序员文章站 2022-05-03 16:01:29
unity如何实现换装系统,供大家参考,具体内容如下1.创建sprite library asset2.添加新目录label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入sprite中3...

unity如何实现换装系统,供大家参考,具体内容如下

1.创建sprite library asset

Unity实现换装系统

2.添加新目录

Unity实现换装系统

label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入sprite中

Unity实现换装系统

3.添加组件

给需要换装的部位添加sprite resolver组件(如头部换装,就在头部对象挂载组件)

Unity实现换装系统

选择目录名,就会出现之前library asset中拖拽的图片内容,点击不同图片可以预览效果(如果出现装备位置偏移,需调整图片的pivot)

Unity实现换装系统

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");
            }
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

相关标签: unity 换装系统