Unity实现换装系统

 更新时间:2021年04月11日 12:10:35   作者:无忧酒不加糖  
这篇文章主要为大家详细介绍了Unity实现换装系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

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

相关文章

  • C#实现 Server-sent Events的步骤

    C#实现 Server-sent Events的步骤

    这篇文章主要介绍了C#实现 Server-sent Events的步骤,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01
  • C#值类型和引用类型的深入理解

    C#值类型和引用类型的深入理解

    本篇文章主要是对C#中值类型和引用类型进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#自定义缓存封装类实例

    C#自定义缓存封装类实例

    这篇文章主要介绍了C#自定义缓存封装类,涉及C#针对缓存的写入、读取及设置过期时间等常用操作,并封装进一个类中便于调用,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 深入了解C#设计模式之订阅发布模式

    深入了解C#设计模式之订阅发布模式

    这篇文章主要介绍了C#设计模式之订阅发布模式的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#实现基于ffmpeg加虹软的人脸识别的示例

    C#实现基于ffmpeg加虹软的人脸识别的示例

    本篇文章主要介绍了C#实现基于ffmpeg加虹软的人脸识别的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • C#中使用jieba.NET、WordCloudSharp制作词云图的步骤

    C#中使用jieba.NET、WordCloudSharp制作词云图的步骤

    之前一篇文章介绍的是使用Python的jieba、wordcloud的库生成词云图,本文则介绍在C#中如何使用jieba.NET、WordCloudSharp库生成词云图,感兴趣的朋友一起看看吧
    2021-07-07
  • C#多线程处理多个队列数据的方法

    C#多线程处理多个队列数据的方法

    本文将结合实例代码,介绍C#多线程处理多个队列数据的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • C# 手写识别的实现示例

    C# 手写识别的实现示例

    本文主要介绍了C# 手写识别的实现示例,文章详细介绍了如何使用C#语言调用OpenCV库实现手写识别,并通过示例程序展示了整个手写识别过程,感兴趣的可以了解一下
    2023-08-08
  • c# wpf使用GMap.NET类库,实现地图轨迹回放

    c# wpf使用GMap.NET类库,实现地图轨迹回放

    这篇文章主要介绍了c# wpf使用GMap.NET类库,实现地图轨迹回放的方法,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • C#采用递归实现阶乘的方法

    C#采用递归实现阶乘的方法

    这篇文章主要介绍了C#采用递归实现阶乘的方法,很有借鉴价值的一个算法技巧,需要的朋友可以参考下
    2014-08-08

最新评论