Game Framework流程
Game Framework 是一个基于 Unity 的轻量级游戏开发框架,提供了模块化的架构,包括资源管理、UI管理、事件系统、数据存储等功能。其整体流程大致如下: 教程: 花桑GameFramework解析 烟雨迷离半世殇GF教程 烟雨迷离半世殇GF视频教程 GF API 手册 常见问题 源码分析 参考项目: GF官方(包涵GameFrameWork 源码,UnityGameFrameWork Package, StarForce 示例工程) 花桑塔防游戏 导入插件: 下载 解压到游戏 Assets 父级目录下,避免污染 Assets,文件中的框架被封装成dll如下要想阅读源码跳转至此 手动修改 package.json 为”version”: “1.0.0” ,否则会报错:导入插件报错:Cannot perform upm operation: Unable to add package, version 字段不符合 Semantic Versioning(语义化版本) 规范。 保存文件,然后重新尝试导入。 源码导入: Q:如何把...
unity 打AB包流程
下面是详细的打包流程、代码示例,以及生成版本文件的完整实现过程。此内容适用于 Unity 项目中使用 AssetBundles 打包并支持版本文件生成与热更新的场景。 1. 打包流程概述 配置资源文件: 将需要打包的资源组织到指定目录中。 设置每个资源的 AssetBundle 名称。 打包 AssetBundles: 使用 Unity 提供的 BuildPipeline.BuildAssetBundles 方法,将资源打包成 .ab 文件。 生成版本文件: 记录所有打包生成的 .ab 文件及其校验值(MD5 或 SHA256)。 生成一个 JSON 格式的版本文件,包含版本号、资源文件名及校验值。 上传资源和版本文件: 将打包好的 .ab 文件和版本文件上传到服务器。 2. 实现步骤Step 1: 配置资源文件在 Unity 中为资源设置 AssetBundle 名称: 选中需要打包的资源(例如:Prefab、Texture)。 在 Inspector 面板中,设置 AssetBundle...
github 作为热更新服
要使用 GitHub 作为 Unity 项目的热更新资源服务器,你可以通过 GitHub 的 Releases 功能来托管和管理资源(如 AssetBundles)。这样,你可以通过 Unity 在运行时动态下载这些资源,而无需每次更新游戏客户端。下面是如何使用 GitHub 来托管 Unity 热更新资源的详细步骤: 1. 准备资源(例如 AssetBundles)首先,你需要将 Unity 项目的资源打包成 AssetBundles。这是 Unity 热更新的常见方式。通过 AssetBundles,你可以在游戏运行时动态加载资源,而不需要重新发布整个游戏。 创建 AssetBundles: 在 Unity 中创建 AssetBundle: 选择你想要打包的资源(例如场景、模型、纹理等)。 在 Inspector 面板中,给它们指定一个 AssetBundle 名称。例如,将所有角色模型的 AssetBundle 命名为 character_assets。 打包 AssetBundles: 通过 BuildPipeline.BuildAssetBundles...
hexo butterfly 添加rightside 按钮
F12调试,查找对应元素的id:页面点击关联至页面元素html标签 themes\butterfly\layout\includes\rightside.pug themes\butterfly\source\js\main.js 查找 hide-aside-btn pug写布局styl写样式main.js控件调用的功能逻辑 12345678910111213141516pug代码,遍历生成自定义按钮:mixin rightsideItem(array) each item in array case item when 'customButton' button#custom-button(type="button" title="全屏阅读") i.fas.fa-star添加按钮到列表:#rightside - const { enable, hide, show } = theme.rightside_item_order -...
Assetbundle
了解什么是Assetbundle严格来说,AssetBundle是Asset的一个集合,是个压缩包。相比直接使用Asset,它有如下几个好处: 特性 AssetBundle 直接使用 Asset 内存管理 资源按需加载,支持加载和卸载,减少内存占用 所有资源在场景启动时加载,无法按需卸载,内存占用大 加载性能 通过按需加载,可以加载所需资源,减少初次加载时间 所有资源在启动时一次性加载,可能导致加载延迟和卡顿 资源的依赖关系 支持自动管理资源依赖,通过 Manifest 文件解决依赖关系 需要手动管理资源的依赖关系,容易导致丢失依赖 更新与热更新 支持热更新,通过增量更新机制可以减少更新数据量 不支持热更新,更新时必须重新打包整个项目 包体大小 可以对 Asset 进行压缩,减小包体大小 资源不压缩,包体较大 跨平台支持 可以为不同平台打包不同的 AssetBundle 所有平台共享相同的资源,可能导致不必要的资源浪费 网络加载 可以通过网络加载...
C# CLR
CLR 是 Common Language Runtime 的缩写,翻译为 公共语言运行时。它是 .NET 框架的核心组件,负责执行由 .NET 编程语言(如 C#、VB.NET、F# 等)编写的程序。 CLR 的主要功能: 代码执行:CLR 是 .NET 程序的执行环境,它将中间语言(IL)代码转换为机器代码,使程序能够在不同的操作系统和硬件平台上运行。 内存管理:CLR 提供了自动垃圾回收功能(GC,Garbage Collection),自动回收不再使用的对象所占用的内存,减少内存泄漏问题。 类型安全:CLR 确保程序的类型安全,防止程序访问未授权的内存或类型错误。 异常处理:CLR 提供了统一的异常处理机制,确保不同语言的程序能够一致地处理错误。 跨语言互操作性:CLR 使得不同编程语言编写的代码能够互操作。例如,C# 编写的代码可以调用 VB.NET 编写的类和方法。 安全性:CLR 提供了多层次的安全性检查(例如代码访问安全性,CAS)来防止恶意代码的执行。 CLR 主要包含的部分: JIT 编译器(Just-in-Time Compiler):CLR...
Unity ScriptableObject
官方文档 在 Unity 中,ScriptableObject 是一种特殊的对象,它允许你在 Unity 编辑器中创建 可序列化 的 自定义数据容器,并且能够在多个场景、多个游戏对象之间共享数据。ScriptableObject 是继承自 UnityEngine.ScriptableObject 类的一种对象,通常用于存储数据,而不是存储行为(功能)。它是为了减少对 MonoBehaviour 的依赖,提升项目的灵活性和性能。 1. 基本概念ScriptableObject 并不像普通的 MonoBehaviour 那样附加到 GameObject 上,而是独立的、非场景物体的对象。它可以在项目中作为资产(Asset)保存,并且多个实例之间可以共享同一份数据,避免了重复存储。 普通对象(如 MonoBehaviour)通常与场景中的对象(GameObject)绑定,每个 GameObject 上可以有多个组件(Component)。 ScriptableObject 是独立的、与场景无关的对象,它可以作为一个单独的资源在项目中保存和使用。 2....
Unity 托管代码与非托管代码
你提到的“托管代码”与“与托管代码”似乎是对术语的重复或笔误。这里我会解释 托管代码 和 非托管代码(通常是与托管代码相对的概念),以及它们的区别。 1. 托管代码(Managed Code)托管代码 是由 .NET 运行时(如 CLR,即公共语言运行时)托管和管理的代码。也就是说,托管代码的执行是在 CLR 环境中进行的,CLR 提供了内存管理、异常处理、垃圾回收、安全性等功能。这意味着开发者无需自己管理内存分配和释放,CLR 会负责这些操作。 特点: 内存管理:托管代码的内存管理是由垃圾回收器(GC,Garbage Collector)自动处理的。 类型安全:CLR 会确保类型的安全性,例如防止类型转换错误、非法内存访问等。 自动垃圾回收:CLR 会定期回收不再使用的内存空间,避免内存泄漏。 安全性:CLR 会进行代码的安全检查,确保代码不会执行恶意操作。 平台独立性:托管代码一般是通过 中间语言(IL,Intermediate Language) 编译的,这样可以通过不同平台上的 CLR 实现执行。 托管代码的一个例子就是 C# 中编写的代码,它会被编译成...
Unity 程序集
常见的四种程序集下面是 Unity 中的预定义程序集(Predefined Assemblies)、默认创建的程序集(Default Assemblies)、自定义程序集(Custom Assemblies)和 预编译程序集(Precompiled Assemblies)四者的关系与区别的对比表格: 特性 预定义程序集 (Predefined Assemblies) 默认创建的程序集 (Default Assemblies) 自定义程序集 (Custom Assemblies) 预编译程序集 (Precompiled Assemblies) 定义 Unity 引擎提供的核心程序集,包含 Unity 引擎功能 Unity 自动创建的程序集,包含项目的用户代码 开发者手动创建和管理的程序集,通常通过 .asmdef 文件创建 编译后的程序集文件,用于加速编译,减少重新编译时间 主要内容 UnityEngine.dll、UnityEditor.dll、mscorlib.dll...
团结引擎
原文 一站式微信小游戏解决方案基于WebGL,团结引擎针对微信小游戏开发了专属的目标平台。您可以轻松将其他平台的游戏转换成微信小游戏,覆盖更广阔的玩家群体。 IL2CPP 内存和性能优化,专项渲染/异常优化,加强版的 Profiler 工具,更有一站式游戏云服务解决方案原生集成了对微信小游戏的支持,助您的作品在性能和体验上更进一步。不仅如此,微信小游戏解决方案还可以实现项目首包大小自动精简、按需获取项目资产等功能。 借助团结引擎的众多功能及特性,您可以轻松实现创意想法,并创建出独具个性的微信小游戏。 一站式智能座舱解决方案团结引擎车机版不仅支持HMI Android、QNX、Embedded...