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 /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by Ncyphe · Aug 16, 2015 at 07:58 AM · serializationreferences

Serialization and Object references

For about a week now, I've been stuck on this particular issue.

Pretext

I'm building my own PathFinding system based on WaypointNodes; thus, each node needs to maintain a reference to a node it is linked to. Similarly, I want to implement a system of type definitions that will associate a Waypoint Node with a certain type (ie, a road that has a certain weighted value) contained on a central list (so it can be edited by an editor).

Currently, if I reference other classes, and serialize the reference, the reference is replaced with a copy of the object once Unity restarts.

Ideally, I could use IDs to search through the list to grab the data; however, the data will get polled constantly, when in the editor, potentially slowing things down. Not to mention, but how would I be able to maintain IDs when static variables don't get serialized. The NextID would be reset every time I compiled the code or restarted Unity.

Question How do I go about serializing direct references to other class-objects? Is there a way to resynch references? And are there any workarounds?

In other words:

 [SerializeField]
 int a = 1;
 [SerializeField]
 int b = a;
 [SerializeField]
 int c = a;

If I compile or restart Unity, how do I make sure that b and c still point to a?

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 troien · Aug 16, 2015 at 09:52 AM 0
Share

I would say depends on what you want to serialize...

Easiest would probably be to make 'a' inherrit from UnityEngine.Object ($$anonymous$$onoBehaviour or ScriptableObject). Sinse UnityEngine.Object gets serialized as a reference ins$$anonymous$$d of a value.

If you want 'a' to inherrit from System.Object (nothing) though, you could perhaps use the ISerializationCallbackReceiver on the container (or 'a' perhaps) and create the references in the OnAfterDeserialize method.

Currently it isn't really clear to me what you want to serialize though (posting code of the variables you want to serialize could help). So I'm not sure which option would be best or if there could even be a option in which there isn't a reference needed...

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

How to store references between scriptableobject assets 3 Answers

Editor tool/serialization crash on windows 0 Answers

Unity still references file moved to different folder 1 Answer

Serialize, deserialize and keep references alive 1 Answer

Problem with serialization since version 5.0 (Parent/Children relationship) 0 Answers


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