Unity实现换装系统
作者:无忧酒不加糖 时间:2021-08-11 15:27:15
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
标签:unity,换装系统
0
投稿
猜你喜欢
Java多线程状态及方法实例解析
2021-09-10 22:49:53
java判断字符串是否为数字的方法小结
2023-11-25 05:54:52
java中transient关键字用法分析
2022-01-22 04:27:05
SpringBoot v2.2以上重复读取Request Body内容的解决方案
2022-06-27 11:00:16
SpringCloud断路器Hystrix原理及用法解析
2022-03-20 16:47:41
SpringMVC bean加载控制的实现分析
2023-08-08 18:46:19
如何修改FeginCilent定义的服务名到指定服务
2022-07-05 05:49:05
Spring mvc Json处理实现流程代码实例
2023-07-14 21:31:06
关于springboot集成swagger及knife4j的增强问题
2023-11-29 00:43:50
Java基础之容器Vector详解
2023-11-25 13:10:07
超详细的Spring Boot入门笔记(总结)
2022-10-26 18:44:21
Java数据结构之链表的增删查改详解
2023-08-13 07:48:40
一文带你彻底理解Java序列化和反序列化
2021-12-23 05:24:12
java使用Hashtable过滤数组中重复值的方法
2023-10-22 06:24:08
获取JsonObject某一未知key的值操作
2023-02-10 15:09:45
SpringBoot配置SSL同时支持http和https访问实现
2023-04-25 19:42:45
SpringBoot实现WebSocket即时通讯的示例代码
2022-06-14 19:59:36
spring cloud zuul修改请求url的方法
2022-09-03 01:44:19
Java定时器问题实例解析
2021-08-21 21:02:53
深入分析java并发编程中volatile的实现原理
2023-11-23 05:02:25