基于UnityGameFramework框架的临时数据节点使用

1.数据节点是可以对游戏中产生的临时变量进行存储或者读取的节点,要是用数据节点,首先要确保在Constant中含有DataNote脚本。新建一个脚本名为:“Constant.DataNode”,具体代码如下:

namespace MyGameNameSpace
{
    public static partial class Constant
    {
        /// <summary>
        /// 数据节点,用来存储游戏中的临时变量
        /// </summary>
        public static class DataNode
        {
            /// <summary> 玩游戏的时间 </summary>
            public const string GamePlayTime = "DataNode.GamePlayTime"; (例)
        }
    }
}

注:在定义临时变量时,在此脚本中都需要定义为“public const string”的形式,在存储或读取的时候再规定其具体形式。定义名称的等号后为“DataNode.xxxx”。

2.其次就可以进行数据的储存或者读取了。首先是存储如下:
GameEntry.DataNode.SetData(Constant.DataNode.IsReLife, false);
注释:格式为SetData<临时变量类型>(临时变量名称,临时变量的值);

变量读取如下:
GameEntry.DataNode.GetData(Constant.DataNode.CurrentVehicle);
注释:格式为GetData<临时变量类型>(临时变量名称);

注意事项:
当运用临时节点存储变量时,如果每次运行都需要读取,有时会出现第一次运行报空的情况(节点并没有生成或者节点内没有值),所以在这里我们使用GetOrAddNode方法进行规避。示例代码如下:

IDataNode node = GameEntry.DataNode.GetOrAddNode(Constant.DataNode.IsReLife);
VarBool data = node.GetData<VarBool>();
if (data != null && GameEntry.DataNode.GetData<VarBool>(Constant.DataNode.IsReLife) == true)
{
    m_Timer = GameEntry.DataNode.GetData<VarFloat>(Constant.DataNode.ReLifeTimer);
    Debug.Log("当前时间为:" + m_Timer);
    GameEntry.DataNode.SetData<VarBool>(Constant.DataNode.IsReLife, false);
 }

如上述代码所示,首先创建一个IDataNode类的变量进行接受GetOrAddNode的临时节点变量,再新建一个类型相对应的类变量去接受node的GetData<相对应类型>();的值,若data!=null则说明有值。若data=null也不会报错而会去添加临时节点。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值