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# WinForm中Panel实现用鼠标操作滚动条的实例方法
由于在WinForm中Panel不能直接响应鼠标的滚动事件,只好采用捕获窗体的滚动事件。2013-03-03
C#实现读取DataSet数据并显示在ListView控件中的方法
这篇文章主要介绍了C#实现读取DataSet数据并显示在ListView控件中的方法,涉及C#操作DataSet及ListView控件的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2015-10-10
关于C#操作文件路径(Directory)的常用静态方法详解
这篇文章主要给大家介绍了关于C#操作文件路径(Directory)的常用静态方法,Directory类位于System.IO 命名空间,Directory类提供了在目录和子目录中进行创建移动和列举操作的静态方法,需要的朋友可以参考下2021-08-08
DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)
这篇文章主要介绍了DirectoryEntry配置IIS7出现ADSI Error:未知错误(0x80005000)的解决办法2015-09-09


最新评论