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
2
Question by Ejlersen · Apr 10, 2011 at 09:17 AM · editorprefabinheritance

Inheritance problem when saving to prefab

I'm having some problem with inheritance, when saving it to prefabs.

I have two classes:

class A { public virtual void Call() { Debug.Log("Hello A"); } }

class B : A { public override void Call() { Debug.Log("Hello B"); } }

I then create an empty prefab, create a game object, add a simple script to hold my object of type B, and lastly replace the prefab with my game object (all done with a script).

The simple script will in Awake do this: someObj.Call();

If I do this on runtime. That is create empty prefab, and so on. Then it will output: "Hello B".

If I do this on editortime, and then add the created prefab to the scene. Then it will output: "Hello A".

So my question is: How do I get around this problem, without creating several lists for each type?

Comment
Add comment · Show 2
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 Statement · Apr 10, 2011 at 11:43 AM 0
Share

Eh, this is something new for me. I gotta try reproduce it when I get back later tonight. oO

avatar image Ejlersen · Apr 11, 2011 at 06:27 AM 0
Share

Well, its also new for me :-) Still looking for a solution.

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Ejlersen · Apr 11, 2011 at 06:05 PM

Okay, so I found this:

Unity's serialization assumes that the type of an array does not change from element to element. This is one of the basic assumption in the system and allows us to very fast serialization, while at the same time allowing full backwards compatibility.

This makes it impossible to use inheritance in a serialized embedded class. If you must use inheritance you have to inherit from ScriptableObject.

Its from 08-21-2008, but it seems its still valid.

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 vamsi1234 · Oct 16, 2012 at 10:06 AM 1
Share

@Anders Ejlersen oh my god! .......... i was waiting for this answer for so long!!!..... finally ...thank you sir

avatar image Ejlersen · Aug 06, 2013 at 07:17 PM 0
Share

$$anonymous$$y pleasure :)

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

2 People are following this question.

avatar image avatar image

Related Questions

adapting replace prefab example 1 Answer

Custom inheritance classes and custom inspectors 2 Answers

Change angle of camera in prefab preview 4 Answers

Apply only a single value to prefab 1 Answer

Create a script that inherits from a class, and than attach multiple inherited classes to unity editor 2 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