// Make this asset loadable at runtime, using the guid and the given name // The guid MUST match the GUID of the object. // The name is arbitrary and should be unique to make all assets findable using name, // but doesn't have to be. Name can be an empty string, but not null. public static bool MakeLoadableAsset(Object obj, string name) { string guid = GetObjectGUID(obj); // Check if it already is Loadable bool isLoadable = IsLoadableAsset(obj); if (isLoadable) { // Update name if it is different foreach (tk2dResourceTocEntry t in tk2dSystem.inst.Editor__Toc) { if (t.assetGUID == guid) { t.assetName = name; break; } } EditorUtility.SetDirty(tk2dSystem.inst); // Already loadable return(true); } // Create resource object string resourcePath = GetOrCreateResourcesDir() + "/" + "tk2d_" + guid + ".asset"; tk2dResource resource = ScriptableObject.CreateInstance <tk2dResource>(); resource.objectReference = obj; AssetDatabase.CreateAsset(resource, resourcePath); AssetDatabase.SaveAssets(); // Add index entry tk2dResourceTocEntry tocEntry = new tk2dResourceTocEntry(); tocEntry.resourceGUID = AssetDatabase.AssetPathToGUID(resourcePath); tocEntry.assetName = (name.Length == 0)?obj.name:name; tocEntry.assetGUID = guid; List <tk2dResourceTocEntry> toc = new List <tk2dResourceTocEntry>(tk2dSystem.inst.Editor__Toc); toc.Add(tocEntry); tk2dSystem.inst.Editor__Toc = toc.ToArray(); EditorUtility.SetDirty(tk2dSystem.inst); AssetDatabase.SaveAssets(); return(true); }
// Make this asset loadable at runtime, using the guid and the given name // The guid MUST match the GUID of the object. // The name is arbitrary and should be unique to make all assets findable using name, // but doesn't have to be. Name can be an empty string, but not null. public static bool MakeLoadableAsset(Object obj, string name) { string guid = GetObjectGUID(obj); // Check if it already is Loadable bool isLoadable = IsLoadableAsset(obj); if (isLoadable) { // Update name if it is different foreach (tk2dResourceTocEntry t in tk2dSystem.inst.Editor__Toc) { if (t.assetGUID == guid) { t.assetName = name; break; } } EditorUtility.SetDirty(tk2dSystem.inst); // Already loadable return true; } // Create resource object string resourcePath = GetOrCreateResourcesDir() + "/" + "tk2d_" + guid + ".asset"; tk2dResource resource = ScriptableObject.CreateInstance<tk2dResource>(); resource.objectReference = obj; AssetDatabase.CreateAsset(resource, resourcePath); AssetDatabase.SaveAssets(); // Add index entry tk2dResourceTocEntry tocEntry = new tk2dResourceTocEntry(); tocEntry.resourceGUID = AssetDatabase.AssetPathToGUID(resourcePath); tocEntry.assetName = (name.Length == 0)?obj.name:name; tocEntry.assetGUID = guid; List<tk2dResourceTocEntry> toc = new List<tk2dResourceTocEntry>(tk2dSystem.inst.Editor__Toc); toc.Add(tocEntry); tk2dSystem.inst.Editor__Toc = toc.ToArray(); EditorUtility.SetDirty(tk2dSystem.inst); AssetDatabase.SaveAssets(); return true; }