欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

Unity实现换装系统

时间:2021-10-06 09:08:21|栏目:.NET代码|点击:

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# 生成随机数的代码

栏    目:.NET代码

下一篇:在ASP.NET中重写URL的代码

本文标题:Unity实现换装系统

本文地址:http://www.codeinn.net/misctech/178888.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有