首先,确保你的ScriptableObject资产位于Resources文件夹中。然后,你可以使用以下代码加载它: csharp using UnityEngine; public class GameManager : MonoBehaviour { public GameSettings gameSettings; void Start() { // 加载GameSettings ScriptableObject gameSettings = Resources.Load<GameSettings>("Game...
ScriptableObjects 系统可以帮助你在 Unity 中存储数据到资源文件夹当中。这些资源可以通过代码来进行读取以及修改,尽管并不建议你通过代码在游戏运行时修改 ScriptableObjects 数据。ScriptableObjects 系统的目的是帮助你存储数据,而不是保存临时存在的变量; ScriptableObjects 的最大好处是它可以被分配至 Unity 编辑器(Unity...
使用[CreateAssetMenu] 属性可以创建自定义菜单项,用于在编辑器中创建 ScriptableObject 对象。 警告:不建议在游戏运行时通过代码修改 ScriptableObject 中的字段,可能会导致编辑器中出现奇怪的行为。 2.3 创建对象数据:Scriptable Object Item.cs 脚本 ItemData 类继承自 ScriptableObject,并定义了四个属性:id、displayName...
Unity 中资源管理方案主要有 Resources、TextAsset、ScriptableObject 、AssetDatabase、PlayerPrefs、Addressables、AssetBundle、SQLite,本文将介绍其中大部分方案。 2 Resources Resources 主要用于加载资源,被加载的资源需要放在 Resources 目录下,可以在 Assets 的任何子目录下创建 Resources 目录,Unity 会自动检索到这些 Resou...
放在Assets/Resources 目录下的资源都当做 Resources。不管这个文件夹里面的资源有没有被用到,都会被打包进游戏,并且可以通过Resources.Load方法动态加载。 上文提到打包后的游戏文件有两种 .assets文件,那么Resources会在哪个文件下面呢?一般来说,如果Resource被场景引用或间接引用,就会像其他被引用的Asset一样被打包进....
1 前言 Unity 中资源管理方案主要有 Resources、TextAsset、ScriptableObject 、AssetDatabase、PlayerPrefs、A...
在Resources文件夹中存储大量对象将增加应用程序启动时间。Resources文件夹是一种老式的便利特性,它允许您通过字符串引用加载对象。 代码语言:javascript 复制 varobject=Resources.Load("aa/bb/cc/obj"); 很容易过度使用Resources文件夹,因为您可以通过将脚本中的对象存储在Resources文件夹中来访问它们。 但是,如上所述...
1.创建 ScriptableObject 类 2.创建 Asset 文件 3.读取 Asset 文件,修改其属性值,数据变化将自动保存到 Asset 文件 publicclassGetGameData:MonoBehaviour{ GameData gameData;voidStart(){ gameData = Resources.Load<GameData>("GameDataAsset"); Debug.Log(gameData.testStr); ...
接下来创建几个ScriptableObject。 来到我们需要加载数据的脚本中,创建变量用来接受读取到的数据。这里DragableTextArea只是用来快速获取路径的,手工填入路径也可以。 接下来只用调用方法 Resource.LoadAll就可以获取到数据。 这是运行前的状态,我们填入的路径是和弦,实际加载的文件夹是Assets-Resources-和弦 文件夹中的所有...
定义几个配置文件的变量,注意这个类必须继承 ScriptableObject。 在代码文件上点击右键/create/globle(类名) 看是不是很厉害,生成了一个带有unitylogo的文件 选中这个文件你可以看到Inspecter显示出了我们刚才定义的参数我们可以自由设置,我们接下来要做的就是读取这些值,我们直接把这个配置文件放到Resources下面然后利用 Re...