ScriptableObject是一个Unity中的object,不是GameObject的实例。你可以使用它来创建一个具有自己的变量和方法的类,其开销会比MonoBehaviour更小。 Unity的GameObject会默认包含一个Transform组件,体现为:1、在Inspector中可以看到Transform组件;2、继承了MonoBehaviour的类中可以直接调用transform参数。 SO不包含Transform并且存在...
static functionCreateInstance(className: string):ScriptableObject; Description Creates an instance of a scriptable object withclassName. static functionCreateInstance(type: Type):ScriptableObject; Description Creates an instance of a scriptable object withtype. ...
我们使用AssetDatabase.CreateAsset来创建资源文件,并且确保扩展名为.asset。如果使用其他扩展名,Unity则不会将其识别为ScriptableObject的派生资源。 usingUnityEditor; usingUnityEngine; public classEditorTest : ScriptableObject { [MenuItem("Example/CreateEditorTestInst")] static voidCreateEditorTestInstance() { v...
1、通过Menu创建可配置的ScriptObject using System.Collections; using UnityEngine; [CreateAssetMenu(fileName = "Data", menuName = "ScriptableObjects/SpawnManagerScriptableObject", order = 1)] public class SpawnManagerScriptableObject : ScriptableObject { public string prefabName; public int numberOfPrefabs...
usingUnityEngine;usingUnityEngine.Events; [CreateAssetMenu(menuName="CreateMyScriptableScript",fileName="Scripts/MyScriptableScript")]publicclassMyScriptableScript:ScriptableObject{publicstringName;publicintLevel;publicGameObject Prefab;publicUnityEvent Event;publicvoidInstance(){ GameObject go = GameObject.Instan...
{ var vehicle =GameObject.CreatePrimitive(PrimitiveType.Cube); vehicle.name = "Cruiser1"; var vehicleBehaviour = vehicle.AddComponent<VehicleInstance>(); vehicleBehaviour.Initialize(cruiser); } } } Static Methods CreateInstanceCreates an instance of a scriptable object. ...
利用CreateAsset,創建出相關Scriptable Object實例 (instance) 物件OnEnable / OnDisable,分別把自己加入到RuntimeSet/從中移除 其他script可以利用相關RuntimeSet來控制相關物件 應用例子:魚缸模擬器 備註:利用Runtime Set集合小魚的物件,而Monitor在小魚數目不夠時,創建新的小魚; ...
当创建⼀个脚本化对象实例后使⽤AssetDatabase.CreateAsset()保存成资源),因为是作为本地资源保存的,所以在退出之后也不会丢失。 但只有在编辑器模式下才可以修改⾥⾯的数据,这是因为ScriptableObject对象虽然声明在UnityEngine中,但是它的Scriptable是通过UnityEditor命名空 ...
在Unity编辑器中创建一个GameData的实例。右键点击Assets面板,选择Create -> GameData。 将脚本实例拖拽到GameData实例的属性中。在编辑器中选择GameData实例,然后在Inspector面板中将脚本实例拖拽到"player"属性上。 在代码中使用GameData实例。可以通过引用GameData实例来访问其中的脚本实例。
当使用编辑器运行游戏的时候,可以将数据保存到ScriptableObject里(当创建一个脚本化对象实例后使用AssetDatabase.CreateAsset()保存该资源),退出之后也不会丢失,因为它是作为Assets下的资源存在的;它是仅在编辑器中才可以保存修改的数据(因为ScriptableObject对象虽然声明在UnityEngine中,但是它的Scriptable是通过UnityEditor命...