如果你需要在运行时创建一个SO实例,则可以调用静态方法CreateInstance: ScriptableObject.CreateInsatance<MyScriptableObjectClass>(); TIPS: 销毁SO 与其他Unity对象一样,一个SO文件也包含了原生C++部分和C#托管部分。你可以直接销毁原生C++部分,但是C#托管的部分依然会留存在内存中,直到资产垃圾收集器(garbage collector...
public static ScriptableObject CreateInstance (Type type); 参数 className 要创建的 ScriptableObject 的类型,作为该类型的名称。 type 要创建的 ScriptableObject 的类型,作为 System.Type 实例。返回 ScriptableObject 创建的 ScriptableObject。 描述 创建脚本化对象的实例。要...
"ShowObject Window",true);// 直接根据ScriptableObject构造一个Editorwindow.editor=Editor.CreateEditor(ScriptableObject.CreateInstance<ShowObject>());}privatevoidOnGUI(){// 直接调用Inspector的绘制显示this.editor
实例化 - ScriptableObject.CreateInstance 接下来生成ScriptableObject,可以使用ScriptableObject.CreateInstance来生成,但是不能使用new来实例化,因为必须通过Unity的序列化机制创建对象,这个跟继承自MonoBehaviour的类也是相同的。 usingSystem; usingUnityEditor; usingUnityEngine; public classEditorTest : ScriptableObject { publ...
实例化,通过ScriptableObject.CreateInstance来生成ScriptableObject。使用new操作符来生成是不行的。理由和MonoBehaviour是一样的,Unity生成Object的时候必须经过序列化。 保存,实例化完成后是将Object作为Asset进行保存。通过AssetDatabase.CreateAsset就能够生成Asset。 Asset的后缀名必须是.asset。如果是其他后缀名的话,Unity会...
您可以将 ScriptableObjects 重新用作游戏不同部分的数据容器。例如,您可以在 ScriptableObject 中定义武器或角色的属性,然后从项目中的任何位置引用该资产。 注意:您还可以通过 CreateInstance 方法在运行时生成 ScriptableObjects。但是,对于数据存储,您通常会使用 CreateAssetMenuAttribute提前创建 ScriptableObject 资源。 Scr...
在Unity 中,如果要创建自己的 ScriptableObject 子类,你可以这样实例化: MyScriptableObject NewSO = ScriptableObject.CreateInstance<MyScriptableObject>();Copy full snippet 在虚幻中,如果要创建 UObject 的继承类,是像下面这样的初始化: UMyObject* NewObj =NewObject<UMyObject>();Copy full snippet ...
ScriptableObject创建的 ScriptableObject。 Description 创建脚本化对象的实例。 要通过 Editor 用户界面轻松创建绑定到 .asset 文件的 ScriptableObject 实例,则考虑使用CreateAssetMenuAttribute。 public static TCreateInstance(); Returns T创建的 ScriptableObject。
ScriptObject obj = ScriptableObject.CreateInstance<ScriptObject>();//创建ScriptObject实例 AssetDatabase.CreateAsset(obj, "Assets/Resources/ScriptObject.asset"); //在Assets/Resources文件夹创建资源文件ScriptObject.asset AssetDatabase.SaveAssets();//保存创建的资源 ...
("Create EndNode", x => { var dialogNodeData = ScriptableObject.CreateInstance<EndNodeData>(); var nodeView = new EndNodeView(dialogNodeData) { //设置点击事件 OnNodeSelected = OnNodeSelected }; nodeView.SetPosition(new Rect(clickPosition, nodeView.GetPosition().size)); this.AddElement(...