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里面的数值,而不用在脚本中进行修改,有便于管理。

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

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity的Slider Drag是指在游戏使用Slider(滑动器)组件时,可以通过拖动滑块来改变其数值。 Slider是Unity提供的用于处理数值的UI组件,它通常用于调整游戏的参数或设置。当我们将Slider添加到游戏场景后,可以通过编辑器或脚本来设置其最小值、最大值以及初始值。 当玩家在游戏运行时通过鼠标或触摸屏点击并拖动滑块时,Slider Drag的功能就启动了。玩家可以根据需要拖动滑块左右移动,以调整Slider的数值。当滑块被拖动时,数值会实时显示,并且会触发相应的事件,可以通过监听这些事件来执行特定的逻辑。 Slider Drag功能的应用场景很广泛。比如在游戏设置界面,可以使用Slider Drag调整游戏的音量、音效或画面亮度等参数;在角色属性界面,可以通过Slider Drag来调整角色的生命值或能量值;在游戏内的其他界面,也可以使用Slider Drag来调整道具的数量或其他可调的数值。 通过Slider Drag,玩家可以通过直观的操作来修改游戏的数值,提升了游戏的可玩性和用户体验。同时,开发者可以通过监听Slider Drag事件,实时更新游戏的相应数据和逻辑,使得游戏能够实时响应玩家的操作。这种交互方式在游戏开发被广泛应用,使得游戏更加灵活、可定制和易于玩家操作。 ### 回答2: Unity Slider Drag是Unity游戏开发引擎用于实现滑动条拖动的功能。滑动条是游戏界面常见的控件,可以用于调整数值、音量、进度等。在Unity,我们可以通过以下步骤实现Slider的拖动功能: 首先,在Unity的编辑器创建一个滑动条控件,可以使用UGUI的Slider组件。 然后,在代码获取Slider组件的引用,可以通过Find或者GetComponent等方法。 接下来,我们可以通过给Slider组件添加事件回调的方式来实现拖动事件的响应。通过使用AddListener方法,我们可以向Slider的回调函数添加相应的处理逻辑。 在处理逻辑,我们可以通过监听OnValueChanged事件来获取Slider的数值变化。当拖动条的值发生改变时,会触发这个事件,并将新的数值作为参数传递给回调函数。 在回调函数,我们可以根据Slider的值来更新游戏的相关内容,比如更新进度条的显示、调整游戏的音量大小等。 最后,我们需要将Slider组件添加到游戏界面的适当位置,以便玩家能够看到并进行拖动操作。 综上所述,Unity Slider Drag即是指在Unity游戏开发使用滑动条控件Slider,并通过其拖动功能实现相应的调整数值、音量、进度等的功能。 ### 回答3: Unity Slider Drag 是 Unity 引擎的滑动器拖动功能。滑动器是一种常见的用户界面元素,用于让用户在指定的范围内拖动滑块来选择一个值。 在 Unity ,我们可以使用 Unity UI 或 UGUI 来创建滑动器,并为其添加拖动功能。首先,我们需要创建一个滑动器对象,并将其放置在适当的位置。然后,我们可以通过设置滑动器的最小值和最大值来定义滑动的范围。 当用户拖动滑块时,我们可以通过监听滑动器的事件来获取滑动的数值。在 Unity ,我们可以使用滑动器的 OnValueChanged 事件来实现这个功能。当滑块的数值发生改变时,该事件会被触发,我们可以在事件回调函数获取到最新的数值。 通过获取到滑块的数值,我们可以在游戏做出相应的处理。比如,我们可以根据滑块的数值来改变对象的位置、大小、透明度等属性,实现滑块控制游戏的某些功能。滑块的拖动功能可以给用户带来更好的交互体验,并增加游戏的可玩性。 总之,Unity Slider Drag 是 Unity 引擎用于实现滑动器拖动功能的一种机制。通过监听滑动器的事件,我们可以获取到滑块的数值,并在游戏做出相应的处理。这种功能可以为游戏增加更好的用户交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值