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 Keeblebrox · Mar 19, 2011 at 04:22 AM · sceneeditor-scriptingpersistence

What is the best way to make static class fields persistent between Play mode and Edit mode?

I'm trying to create an Editor tool for configuring a component, but I can't seem to find a way to keep its fields persistent when I hit play mode -- all configured information is lost. The optimal solution for me would be to keep this configuration stored in the scene so that it is loaded when the scene is loaded; I'd like to avoid saving the information to a file manually if I can avoid it.

Here's a rough example of what I'd like to keep persistent:

using UnityEngine; using System.Collections; using System.Collections.Generic;

public class PersistenceExampleClass : MonoBehaviour { protected static List<Node> _nodes = new List<Node>();

 public static Node AddNode()
 {
     Node result = new Node();
     _nodes.Add( result );
     return result;
 }

}

I have AddNode being triggered by an Editor script, which works successfully; however, entering Play mode any Node objects added to _nodes are lost. Node inherits from Object, but not MonoBehaviour. Is anyone familiar with a way to keep that information around?

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by eduwushu · Jul 21, 2011 at 07:08 AM

Node class must be marked as Serializable with an attribute (and all of its fields that you want to keep must me marked also with SerializeField attribute). Then you will have to mark the _nodes field with SerializeField attribute too, as it is a non-public member of PersistenceExampleClass and this way will not be serialized.

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

1 Person is following this question.

avatar image

Related Questions

Cannot close/unload a scene that is open in editor during playmode (using C# code)? 3 Answers

Cannot close Preview Scene 0 Answers

How to save field changes to scene file using ContextMenu? 1 Answer

How can I make function run in the editor only when I press a button in the inspector? 1 Answer

Editor Scene? 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