Files
oniagent/ONIModTutorial/ONIModTutorial-main/resource-unity.md
2026-05-30 11:00:36 +08:00

98 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 缺氧Mod开发 - Unity资源使用指南
缺氧是使用Unity游戏引擎开发的。所以很多机制与资源都与Unity开发是通用的。
在我们开发缺氧mod的过程中我们可以巧妙的使用Unity相关的功能来扩展或增强我们对mod的开发能力。
## 常用Unity资源
1. Asset Bundle 资源整合包简称AB包
2. UI界面 - 自定义UI界面比如sidescreen等
3. 动画效果 - 粒子效果、材质制作
## 详细介绍
### 1. Asset Bundle包简称AB包
**简介:**
Asset Bundle是Unity中一种资源打包格式可以将游戏中的各种资源如纹理、模型、预制体等打包成一个独立的文件。在Mod开发中使用AB包有以下优势
- 减少Mod的文件体积提高加载效率
- 方便管理和更新资源
- 支持热更新无需重新编译Mod
- 可以包含复杂的Unity资源如预制体、动画等
**最常打包使用的内容:**
1. 图片资源Sprite
2. 预制体Prefab
- 预制体经常用来制作自定义的UI界面、自定义的UI效果比如粒子效果Effect等用预制体打包到AB包中
**使用步骤:**
1. **安装Asset Bundle Browser工具**
Unity菜单栏 --> Windows --> Package Manager --> + --> Add package from git url -->
`https://github.com/Unity-Technologies/AssetBundles-Browser.git`
2. **打包资源**
Unity菜单栏 --> Windows --> Asset Bundle Browser-> Tab: Configure 确认 --> Tab: Build -> Build
3. **Mod中引用**
需要引用 `UnityEngine.AssetBundleModule.dll`
```csharp
using UnityEngine;
// 载入ab包
AssetBundle assetBundle = AssetBundle.LoadFromFile(file_path);
// 加载资源
// sprite 图片资源
assetBundle.LoadAsset<Sprite>(sprite_name);
// 挂载时机:[HarmonyPath(typeof(Asset),"OnPrefabInit")]
// 资源挂载点Assets.Sprites
// prefab 预制体
GameObject prefab = assetBundle.LoadAsset<GameObject>("gameobject_name");
gameObjectNameInstance = Util.KInstantiate(prefab);
```
### 2. UI界面
**简介:**
在缺氧Mod开发中自定义UI界面是增强用户体验的重要部分。常见的UI界面包括
- SideScreen物品或建筑的侧边信息栏
- 自定义对话框
- 配置面板
**实现方式:**
1. 使用Unity创建UI预制体打包到AB包中
2. 在Mod中加载并实例化这些预制体
3. 使用Harmony补丁修改游戏的UI系统将自定义UI集成到游戏中
### 3. 动画效果
**简介:**
动画效果可以为Mod添加视觉吸引力包括
- 粒子效果:如特效、光晕、烟雾等
- 材质动画:如发光、变色等效果
- 模型动画:如机械运动、角色动作等
**实现方式:**
1. 在Unity中创建动画效果和材质
2. 打包到AB包中
3. 在Mod中加载并应用这些效果
## 最佳实践
1. **资源管理**合理组织AB包避免过大的包体
2. **性能优化**:只加载必要的资源,及时卸载不需要的资源
3. **版本控制**为AB包添加版本号方便更新和兼容性管理
4. **错误处理**:添加资源加载失败的处理逻辑
## 注意事项
- 确保使用与游戏版本兼容的Unity版本
- 避免使用Unity的新特性确保向后兼容性
- 测试不同平台上的资源加载情况
- 遵守Klei的Mod开发规范
通过合理使用Unity资源你可以创建更加丰富和专业的缺氧Mod为玩家带来更好的游戏体验。