protected virtual void RenameScriptableObjectIfNeeded(T obj, string name) { if (obj == null) { return; } var nameWithExtension = name ?? ""; if (nameWithExtension.EndsWith(".asset") == false) { nameWithExtension += ".asset"; } var assetPath = AssetDatabase.GetAssetPath(obj); if (assetPath.EndsWith(nameWithExtension) == false) { var saveFolder = InventoryScriptableObjectUtility.GetSaveFolderForType(typeof(T)); var renamePath = saveFolder + "/" + nameWithExtension; if (AssetDatabase.LoadAssetAtPath <T>(renamePath) == null) { RenameScriptableObject(obj, name ?? "nameless"); } } }
protected override void CreateNewItem() { var item = ScriptableObjectUtility.CreateAsset <T>(InventoryScriptableObjectUtility.GetSaveFolderForType(typeof(T)), DateTime.Now.ToFileTimeUtc() + ".asset"); GiveItemNewID(item); AddItem(item, true); }