Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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
0
Question by Hypnotoad0 · Mar 19, 2016 at 08:46 PM · editorserializationeditorscript

Saving changes in a component modified by an editor script

I need to give a few objects an unique id. Instead of doing it by hand I wrote an editor script.

The script works perfectly, but it doesnt save the changes even after i save the scene (it reverts the id to 0 when i enter play mode)

Here's the script (the relevant part) :

 public bool assignedID = false;
 public string id = "";

 void Awake()
 {

     if (Application.isPlaying) return;

     if (!assignedID)
     {

         // these work perfectly, ignore them
         assignedID = true;
         id = GetUnusedID();

   

         // none of this works
         EditorUtility.SetDirty(this);
         EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene());
         EditorSceneManager.SaveScene(EditorSceneManager.GetActiveScene());

     }

 }
Comment
Add comment · Show 4
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 flashframe · Mar 19, 2016 at 09:06 PM 0
Share

Really need to see the whole script to help properly. But, if your "id" field was part of the mono behaviour and not the editor script, it would serialize properly.

avatar image Hypnotoad0 flashframe · Mar 19, 2016 at 09:16 PM 0
Share

This is the full script: http://pastebin.com/fbZajVGd

avatar image flashframe Hypnotoad0 · Mar 19, 2016 at 10:53 PM 0
Share

I think your problem might be that Unity only serializes certain primitive variable types. Not sure if Long is one of them. Have you tried making it an int ins$$anonymous$$d to see if the serialisation works?

Show more comments

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Hypnotoad0 · Mar 20, 2016 at 01:56 PM

After 20 years of trial and error I seem to have fixed it. You have to break the prefab instance or it will keep resetting.

     PrefabUtility.DisconnectPrefabInstance(this);

There's probably a better workaround but this one worked for me.

Comment
Add comment · Show 2 · Share
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 Cherno · Mar 20, 2016 at 03:42 PM 0
Share

$$anonymous$$ay you have to use SetDirty().

avatar image Hypnotoad0 Cherno · Mar 20, 2016 at 08:00 PM 0
Share

Tried that. Nothing worked for me until i broke the prefab.

avatar image
0

Answer by HalfBlood_Elf · Oct 25, 2018 at 11:19 AM

Had similar problem, changed fonts in editor but no saving. Helped this topic: https://answers.unity.com/questions/1042052/change-text-in-text-component-from-editor-script.html

Comment
Add comment · Share
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
0

Answer by LiamColee · Jul 30, 2021 at 03:06 PM

you need to set dirty before making a change

Comment
Add comment · Share
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

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

49 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Help with Missing Monobehaviours and Asset Serialization? 0 Answers

Got a Problem when serializing Class Dictionary with Custom Editor 1 Answer

[JS] [Editor] SerializedObject from a custom class. 0 Answers

Editor Serialization of Collections/Collection Interfaces 1 Answer

ScriptableObject : Serialized Polymorphism Classes Can Not be Deserialize with Polymorphism 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