Unity实现换装系统
作者:无忧酒不加糖 发布时间:2021-08-11 15:27:15
标签: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");
}
}
}
}
来源:https://blog.csdn.net/weixin_48426544/article/details/115583551


猜你喜欢
- 在Android开发中,View是我们必须要接触的用来展示的技术.通常情况下随着View视图的越来越复杂,整体布局的性能也会随之下降.这里介
- AES类时微软MSDN中最常用的加密类,微软官网也有例子,参考链接:https://docs.microsoft.com/zh-cn/dot
- 本文实例讲述了Android开发之HttpClient异步请求数据的方法。分享给大家供大家参考,具体如下:前面一篇Android开发笔记之:
- 题目要求为:卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样
- 今天看到,java的NIO里面的SelectionKey,处理完key后,调用keyIterator.remove(); 对Iterator
- 1、简单又有效的方法是使用PreparedStatement采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX(如:s
- 在对类访问使用时,常用到的有访问类的成员、方法。实例化在对类进行访问时,需要将类进行实例化。并产生一个对象。可以使用关键字new来实现。由于
- XML中的扫描过程<?xml version="1.0" encoding="utf-8" ?
- 在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二
- /// <summary> /// 实体转换辅助类 /// </summary> public class Mode
- 场景:使用MyBatis批量查询(select)、批量插入(insert)、批量更新(update)、批量删除(delete)操作MySQL
- 本文主要介绍android应用android系统中剪切板进行数据的传递,首先讲解的是传递简单数据,然后讲解传递对象类型的数据。所有实例均在a
- webservice的POST和GET请求调用POST请求1.发送请求import java.io.DataOutputStream;imp
- 在使用EF查询数据的时候,我们常用的查询数据方式有linq to sql,linq to object,查询返回的结果有两种类型:IQuer
- 本文实例讲述了C#的内存回收方法。分享给大家供大家参考。具体实现方法如下:如下示例代码是调用win32底层操作,可实现内存的回收。 
- strftime函数主要用于时间格式化,它的函数原型如下:size_t __cdecl strftime(char * __restrict
- 本文实例为大家分享了Android表格布局TableLayout的具体代码,供大家参考,具体内容如下1.TableLayout TableL
- 定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图:例子:例如
- 一、基本RPC框架简介在分布式计算中,远程过程调用(Remote Procedure Call,缩写 RPC)允许运行于一台计算机的程序调用
- object对象中的 public boolean equals(Object obj),对于任何非空引用值 x 和 y,当且仅当 x 和