Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
1
Question by craigiedon · Nov 24, 2014 at 01:05 AM · c#assetserializationassetdatabaselevel-editor

"Save As..." Saving level assets at Runtime

I'm making a run-time level editor for myself. I've created a grid and tile editing tool, but am struggling with saving the level data. From reading the Unity tutorials, I am trying the most "Unity-esque" approach: Making my level object a ScriptableComponent, and saving/loading it as an Asset using AssetDatabase

My problem is creating a "Save As..." function. Here is the current code in my LevelEditor class which runs when the user clicks the "Save" button:

     string filePath = EditorUtility.SaveFilePanelInProject("Save level",
                                                            "level",
                                                            "asset",
                                                            "Save the level");
     AssetDatabase.CreateAsset(level, filePath);
     AssetDatabase.SaveAssets();

The problem is this code only works for one click. The first time I click, it opens the file explorer for me to pick where to save the file, creates the asset and saves it there. However, If I click save a second time, I get the following error (Regardless of the file path chosen):

 Couldn't create asset file because the MonoBehaviour 'level' is already an asset at 'Assets/Levels/level.asset'!
 UnityEditor.AssetDatabase:CreateAsset(Object, String)

I think this is because even though I might be saving the ScriptableObject in a different folder or with a different asset name, Unity still has that particular level object loaded in memory from the first save as an existing asset. Is there a way to to somehow detach or unbind the level object from the asset, or "unload" the asset information so it can be saved again as a different file? I have search the API and Manual but can't seem to find much info on this.

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image owen-mills · Apr 21, 2015 at 09:00 AM 0
Share

Did you ever find the solution to this problem? I'm having the same issue.

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Custom assets give Missing (Mono Script) 0 Answers

Assistance needed with serialization, inheritance and scriptableobject 1 Answer

asset is emty on enering play mode 1 Answer

.asset file containing ScriptableObject is empty on openingUnity 1 Answer

Multiple Cars not working 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges