当前位置: 首页 > news >正文

Unity ScriptableObject 技术文档

📌 什么是 ScriptableObject

  • ScriptableObject 是 Unity 提供的一种轻量级数据容器。
  • 它不像 MonoBehaviour 那样挂在 GameObject 上,而是以 .asset 文件 的形式存在于项目中。
  • 常用于存储配置数据、角色属性、技能参数等。

🛠 创建 ScriptableObject

方法一:使用 CreateAssetMenu 特性

using UnityEngine;[CreateAssetMenu(fileName = "NewEnemyStats", menuName = "Game/Enemy Stats")]
public class EnemyStats : ScriptableObject
{public float health = 100f;public float attack = 10f;
}
  • 在 Unity 编辑器中:
    Assets → Create → Game → Enemy Stats
  • 会生成一个 .asset 文件,可以在 Inspector 中编辑。

方法二:运行时创建

EnemyStats stats = ScriptableObject.CreateInstance<EnemyStats>();

如果需要保存为 .asset 文件(仅编辑器可用):

#if UNITY_EDITOR
using UnityEditor;EnemyStats stats = ScriptableObject.CreateInstance<EnemyStats>();
AssetDatabase.CreateAsset(stats, "Assets/NewEnemyStats.asset");
AssetDatabase.SaveAssets();
#endif

📦 ScriptableObject 容器

如果需要管理多个数据,可以写一个容器类:

[CreateAssetMenu(fileName = "EnemyStatsContainer", menuName = "Game/Enemy Stats Container")]
public class EnemyStatsContainer : ScriptableObject
{public EnemyStats[] allEnemyStats;
}

这样就能在编辑器里创建一个 EnemyStatsContainer.asset,集中管理多个敌人属性。


🔑 使用场景

  • 角色属性:玩家、敌人、NPC 的数值。
  • 技能配置:技能伤害、冷却时间、范围。
  • 游戏配置:关卡参数、难度设定。
  • 数据共享:多个对象共享同一份数据,减少冗余。

⚠️ 注意事项

  • ScriptableObject 不依赖场景,可以跨场景复用。
  • 不要在运行时直接修改 .asset 文件的数据(会影响所有引用),通常在运行时复制一份。
  • 适合存储静态数据,不适合存储动态状态。

🎯 总结

  • [CreateAssetMenu] 在编辑器中快速创建数据资产。
  • ScriptableObject.CreateInstance<T>() 在运行时创建临时对象。
  • 用容器类管理多个 ScriptableObject,方便组织和引用。

http://www.jsqmd.com/news/258422/

相关文章:

  • 常州市天宁钟楼新北武进金坛溧阳区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜推荐 - 老周说教育
  • 徐州市丰沛睢宁新沂邳州区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 老周说教育
  • 基于SpringBoot的考务报名平台毕业设计
  • Linux 磁盘挂载全流程实战——从新盘初始化到安全开机自启
  • 完整教程:Go并发编程核心:channel和sync使用场景分析
  • 基于SpringBoot的考勤管理系统毕业设计源码
  • 2025年长春靠谱的工业暖风机定制厂家哪个好,乏风取热箱/新风机组/翅片管/工业暖风机/散热器/空调机组企业哪家好 - 品牌推荐师
  • 基于SpringBoot的考研互助交流平台毕业设计
  • 基于SpringBoot的航班进出港管理系统毕设
  • 学Simulink--基础MPPT控制场景实例:基于Simulink的强化学习MPPT算法仿真
  • 一文吃透 Spring 事务传播行为:7 种场景+代码实战
  • OSPF实验-HCIA-rj
  • 手把手教你学Simulink--基础储能管理场景实例:基于Simulink的电池簇间一致性管理与均衡仿真
  • 上饶市横峰弋阳余干鄱阳雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 抚州市崇仁乐安宜黄金溪资溪广昌雅思培训辅导机构推荐:2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 抚州市崇仁乐安宜黄金溪资溪广昌雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 机房U位资产管理传感器续航时间揭秘:超长待机让管理更轻松
  • 2026年AI获客服务商技术流派深度解析:从综合服务到垂直深耕的五大企业全链路拆解 - 品牌推荐
  • 职场人的结构化思维
  • 感知机的对偶形式是怎么来的
  • 盘点支付宝立减金回收变现权威合规平台 - 淘淘收小程序
  • ArrayOS AG高危命令注入漏洞(CVE-2025-66644)技术分析与修复指南
  • 内核(Kernel)与操作系统(OS)
  • 学霸同款2026 AI论文写作软件TOP9:MBA毕业论文全场景测评
  • 系统性地深入分析一下Oracle EBS中 寄售(Consignment)库存 的管理和结算全流程
  • 【大气】基于matlab模拟地球气候的Ghil-Sellers能量平衡模型【含Matlab源码 14973期】
  • 在SAP中,处理日常总账、应收、应付等外币业务时,系统默认使用汇率类型 M(平均汇率)
  • 2025年最新盘点:CTU货架公司哪家强?,组合式货架/货架定制/背网货架/悬臂货架/重型货架/中型货架/牛脚式货架CTU货架公司口碑推荐 - 品牌推荐师
  • 从“百花齐放”到“强者恒强”:深度解析国产数据库“南达梦,北金仓”新格局
  • 2025年国内可靠的防雨箱盖工厂联系电话,开关防雨箱/横臂监控杆/消防中心控制台/成品操作台公司排行 - 品牌推荐师