栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

Unity中角色基本属性与数值的管理

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity中角色基本属性与数值的管理

CharacterStats 人物基本属性和数值:

此处通过ScriptableObject类型脚本来创建存放角色数值的文件


首先创建相关的文件夹来存放:

建立一个存放脚本以及存放数据的文件夹:

接着在CharacterData_SO中进行简单的编写(此处举例几个属性):

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName ="New Data",menuName ="Character Stats/Data")]
public class CharacterData_SO : ScriptableObject
{
    [Header("Stats Info")]
    public int maxHealth;
    public int currentHealth;
    public int baseDefence;
    public int currentDefence;
}

这里列举了生命和防御属性,并且此脚本是ScriptableObject类型,而且是可在编辑器种对齐进行创建。其他小伙伴可以自行进行扩充。


创建第一个Data:

返回编译器中创建相应的文件夹进行数据的存放,并且创建第一个Data


创建完成后可对其属性进行编写:


创建MonoBehavior的脚本来进行数据的管理(可挂载在角色身上):


名字自行定义即可
此脚本的作用是用来读取CharacterData_SO,并且可以对其进行内容的修改
代码如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CharacterStats : MonoBehaviour
{
    //用于获取角色数值

    public CharacterData_SO characterData;

    //折叠管理
    #region Read for Data_SO
    public int MaxHealth
    {
        get{ if (characterData != null) return characterData.maxHealth; else return 0; }
        set{ characterData.maxHealth = value; }
    }
    public int CurrentHealth
    {
        get { if (characterData != null) return characterData.currentHealth; else return 0; }
        set { characterData.currentHealth = value; }
    }
    public int BaseDefence
    {
        get { if (characterData != null) return characterData.baseDefence; else return 0; }
        set { characterData.baseDefence = value; }
    }
    public int CurrentDefence
    {
        get { if (characterData != null) return characterData.currentDefence; else return 0; }
        set { characterData.currentDefence = value; }
    }
    #endregion
}

此处利用了c#特性的get set方法来对数据的读取和修改,减少多级访问
接着将脚本挂着到Player上。此处我用了自己的一个项目,小伙伴可以用个方块测试也行:

挂载在物体上后并选择自己的Data即可。
最后,在你的角色控制脚本中对此脚本进行引用便可直接读取到Data里面的数据,或者更改其数据。

最后,这样做的原因是以后在修改角色数据时,可直接修改Data里面的数值,而不用在脚本中进行修改,有便于管理。

有需要的小伙伴可以自己设定自己的相关数值来进行使用!!!!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901965.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号