[Unity] GameFramework 学习记录 5

本文记录了在Unity中使用GameFramework框架时,通过JetBrains Rider反编译查看dll中接口实现的过程,以及在实现血条和体力条UI显示时遇到的问题。作者发现通过在setter中更新UI可以有效处理血量和体力的变化。然而,由于MonoBehaviour的限制,直接在静态类中使用会导致问题,需挂载到GameObject上。这揭示了在游戏开发中理解框架和MonoBehaviour工作原理的重要性。

在这里插入图片描述

jetbrain rider 可以反编译
原来在 visual studio 看不到的,写在 dll 里面的,接口的实现,经过反编译之后就能看到
这样就不用费心思多开一个阅读源码的 IDE 窗口了

比如现在看到的这个 GetDataRow,输入 id 的话

DataTableManager.cs

      public T GetDataRow(Predicate<T> condition)
      {
   
   
        if (condition == null)
          throw new GameFrameworkException("Condition is invalid.");
        foreach (KeyValuePair<int, T> data in this.m_DataSet)
        {
   
   
          if (condition(data.Value))
            return data.Value;
        }
        return default (T);
      }

其中

m_DataSet 是字典

DataTableManager.cs

private readonly Dictionary<int, T> m_DataSet;

在构造函数中初始化

DataTableManager.cs

public DataTable(string name)
        : base(name)
      {
   
   
        this.m_DataSet = new Dictionary<int, T>();

InternalAddDataRow 中新增

DataTableManager.cs

private void InternalAddDataRow(T dataRow)
      {
   
   
        // ...
        this.m_DataSet.Add(dataRow.Id, dataRow);

在 DefaultDataTableHelper 的 ParseData 读取行
Assets/GameFramework/UnityGameFramework-b2d2ef63517d2cab5f0def57e691a2d794b6a7f5/Scripts/Runtime/DataTable/DefaultDataTableHelper.cs

        public override bool 
### Game Framework 使用教程及开发指南 Game Framework 是一个广泛应用于游戏开发的框架,主要针对 Unity 引擎进行设计和封装[^1]。它通过提供标准化的开发流程、封装常用模块以及支持快速迭代,帮助开发者提高效率并确保产品质量[^2]。 以下是一个关于 Game Framework 的使用教程概览: #### 1. 安装与配置 在开始使用 Game Framework 之前,需要完成安装和配置工作。具体步骤包括: - 下载项目源码,可以从官方仓库获取(如 [UnityGameFramework](https://gitcode.com/gh_mirrors/un/UnityGameFramework) 或其他相关版本)[^3]。 - 导入项目到 Unity 工程中,确保 Unity 版本与框架兼容。 - 配置必要的资源路径和依赖项,例如加载场景、资源管理等。 #### 2. 核心功能介绍 Game Framework 提供了多个核心模块,用于处理游戏开发中的常见需求[^4]。以下是几个关键模块及其用途: - **资源管理**:支持动态加载和卸载资源,减少内存占用。 - **实体系统**:基于数据驱动的设计,允许开发者定义和操作游戏中的对象。 - **事件系统**:实现模块间的解耦通信,便于扩展和维护。 - **日志系统**:记录运行时信息,方便调试和问题追踪。 #### 3. 开发流程 为了高效地使用 Game Framework,建议遵循以下开发流程: - **初始化项目**:创建一个新的 Unity 工程,并导入 Game Framework 插件。 - **配置框架参数**:根据项目需求调整框架的默认设置。 - **开发核心功能**:利用框架提供的模块实现游戏的核心逻辑。 - **测试与优化**:通过框架的日志和性能分析工具,对游戏进行优化。 #### 4. 示例代码 以下是一个简单的示例,展示如何使用 Game Framework 加载资源并创建实体: ```csharp using UnityEngine; using GameFramework; public class Example : MonoBehaviour { void Start() { // 加载资源 GameEntry.Resource.LoadAsset("prefab/player", (asset) => { if (asset != null) { // 创建实体 GameObject entity = Instantiate(asset as GameObject); entity.transform.position = Vector3.zero; } }); } } ``` #### 5. 学习资源 除了官方文档外,还可以参考以下学习资源: - **官方教程**:[UnityGameFramework 教程指南](https://gitcode.com/gh_mirrors/un/UnityGameFramework) 提供了详细的开发指导。 - **社区讨论**:参与相关论坛或社交媒体群组,与其他开发者交流经验。 - **视频教程**:搜索 YouTube 或 B 站上的相关教学视频,获取直观的学习体验。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值