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 question was closed Jan 06, 2016 at 05:15 PM by Xarbrough for the following reason:

Question included mistakes not related to the question. Fixed.

avatar image
2
Question by Xarbrough · Jan 06, 2016 at 03:19 PM · c#serializationscriptableobjectgenerics

How to serialize a concrete derived class from generic ScriptableObject base

I would like to use a generic ScriptableObject class as a base for multiple children, which then should be serialized. I thought this would work the same way it does with normal generic classes and concrete serializable child classes, but apparently it doesn't:

 // Not serializable.
 public class GenericClass<T>
 {
     public T Data;
 }
 
 // Serializable.
 [System.Serializable]
 public class ConcreteClass : GenericClass<int> { }
 
 // Not serializable.
 public class GenericSO<T> : ScriptableObject
 {
     public T Data;
 }
 
 // Should be serializable, but isnt. Why?
 public class ConcreteSO : GenericSO<int> { }

Am I doing something wrong or is there a reason that ScriptableObject derived classes won't serialize although they are concrete implementations of the generic base? Is there a smart way around this? I basically I want the base class to hold a KeyValuePair-like data structure, for which the value is always of the same type, but the key is different. Subclassing this with normal classes makes sense and works fine, but I want instances as assets, so I need SO.

Thanks for any suggestions! :)

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

  • Sort: 
avatar image
0

Answer by frarees · Jan 06, 2016 at 04:44 PM

Mark ConcreteSO and GenericSO´1 class definitions with a System.Serializable attribute as you did with ConcreteClass. That should do for serializing ConcreteSO fields.

Comment
Add comment · Show 1 · 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 Xarbrough · Jan 06, 2016 at 05:14 PM 1
Share

Thanks for answering, but the Serializable attribute is not needed with ScriptableObject as far as I know. I've also tested and it doesn't make a difference. However, I just found out that my posted code works in a new project, so I must have been doing something else wrong. Closing the question.

Follow this Question

Answers Answers and Comments

53 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 avatar image avatar image avatar image avatar image

Related Questions

Polymorphism with generic ScriptableObjects? 1 Answer

Field not Serializing in a custom class 0 Answers

Serializing a ScriptableObject without creating an asset for it? 2 Answers

ScriptableObject stored in MonoBehaviour lost on quit 1 Answer

Add lines to a script from another script 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