[MenuItem("Example/CreateEditorTestInst")] static voidCreateEditorTestInstance() { var editorTest = CreateInstance<EditorTest>(); AssetDatabase.CreateAsset(editorTest, "Assets/Test/EditorTest.asset"); AssetDatabase.Refresh(); } } 另外,使用CreateAssetMenu也可以轻松创建资源,使用CreateAssetMenu时,会...
我们创建一个C#脚本然后做点修改: [CreateAssetMenu(fileName = "##创建Scriptable Obj时候默认的名字",menuName = "##右键菜单里的路径,比如Make a Bullet/Bullet")]//方便从菜单快速创建子弹副本publicclassBullets:ScriptableObject{publicfloatbulletSpeedpublicfloatdamagepublicintlifeSpanpublicBulletTypebulletType} ...
来自Unity官方开发者电子书《Create modular game architecture in unity with scriptableobjects》 前言 在unity官方文档的 Advanced best practice guides 中,提供了多本电子书,其中都包含许多有价值的信息。 本文将《Create modular game architecture in unity with scriptableobjects》翻译为中文版本供有需要的小伙伴参考...
写一个Scriptable Object案例: using System.Collections; using System.Collections.Generic; using UnityEngine; //在Creat菜单创建一个名为Item的条目(可以在资源文件夹下右键创建脚本化对象Item了) [CreateAssetMenu(menuName = "Item")] //继承自ScriptableObject而非MonoBehaviour,如此不能直接挂载到游戏对象上,得...
在Unity编辑器中创建一个GameData的实例。右键点击Assets面板,选择Create -> GameData。 将脚本实例拖拽到GameData实例的属性中。在编辑器中选择GameData实例,然后在Inspector面板中将脚本实例拖拽到"player"属性上。 在代码中使用GameData实例。可以通过引用GameData实例来访问其中的脚本实例。
使用Scriptable需要在创建一个脚本并继承自ScriptableObject类,通过使用CreateAssetMenu属性来创建由自定义ScriptableObject类生成的资源。 ScriptableObject资源的创建: //方法1:在编辑器菜单中创建 [CreateAssetMenu(fileName = "NewScriptableObject", menuName = "CreateScriptableObject", order = 0)] ...
Unity会自动序列化所有你自己写的脚本组件(Scriptable Object), 重载新的程序集,并且重新创建你的脚本组件。简单的说,序列化后,数据就可以被保存了。Unity序列化过程不走.NET的方法,而是Unity内部的方法。 可序列类型 所有继承至UnityEngine.Object的类,如MonoBehaviour。
(Selection.activeObject)),"");}stringassetPathAndName=AssetDatabase.GenerateUniqueAssetPath(path+"/New "+typeof(T).ToString()+".asset");AssetDatabase.CreateAsset(asset,assetPathAndName);AssetDatabase.SaveAssets();AssetDatabase.Refresh();EditorUtility.FocusProjectWindow();Selection.activeObject=...
void Start() { createScriptableObject(); } void createScriptableObject() { CustomClass newItem = ScriptableObject.CreateInstance<CustomClass >(); newItem.name = "name"; AssetDatabase.CreateAsset(newItem, "Assets/NewScriptableClasses/Test.asset"); } Share Improve this answer Foll...
your project’s memory usage by avoiding copies of values. This is useful if your project has aprefabAn asset type that allows you to store a GameObject complete with components and properties. The prefab acts as a template from which you can create new object instances in the scene.More ...