/// <summary> /// 销毁可脚本化对象 /// </summary> /// <param name="obj">对象</param> protected void DestroySubScriptableObject(ScriptableObject obj) { if (Targets.Length > 1) { return; } if (obj == null) { return; } if (Target is Component) { Component component = Target as Component; GameObject prefab = ScriptableToolkit.GetBelongPrefab(component.gameObject); if (prefab != null) { ScriptableToolkit.DestroySubScriptableObject(obj, prefab); } else { DestroyImmediate(obj); } } else { ScriptableToolkit.DestroySubScriptableObject(obj, Target); } }
/// <summary> /// 创建可脚本化对象,并作为此主对象的子对象 /// </summary> /// <param name="type">对象类型</param> /// <returns>对象实例</returns> protected ScriptableObject CreateSubScriptableObject(Type type) { if (Targets.Length > 1) { return(null); } ScriptableObject obj = CreateInstance(type); obj.name = type.FullName; if (Target is Component) { Component component = Target as Component; GameObject prefab = ScriptableToolkit.GetBelongPrefab(component.gameObject); if (prefab != null) { ScriptableToolkit.SaveSubScriptableObject(obj, prefab); return(obj); } else { return(obj); } } else { ScriptableToolkit.SaveSubScriptableObject(obj, Target); return(obj); } }