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
0
Question by monkeyThunk · Mar 24, 2012 at 07:25 PM · componentclassinheritancemonobehaviorsubclass

Component Class Hierarchy

I've created a hierarchy of UnityScript classes.

 SuperClass
    SubClassA extends SuperClass
    SubClassB extends SuperClass

These are currently stand-alone classes that I instate in code. I'd now like to map them so each one is a Component.

The problems seems to be that they all need to inherit directly from MonoBehavior.

Is it possible for my SuperClass to inherit from MonoBehavior, and the subclasses to inherit from the SuperClass ?

If it's not possible in UnityScript, would this be possible in C# ?

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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by Bunny83 · Mar 25, 2012 at 02:40 AM

It should also be possible in UnityScript that way:

 class SuperClass extends MonoBehaviour
 {
     
 }
 
 class SubClassA extends SuperClass
 {
 }
 
 class SubClassB extends SuperClass
 {
 }

Note that every class have to be in it's own file and the file name has to match the class name. Otherwise you can't add the scripts to a GameObject.

I use C# exclusively because i don't like the JS-syntax ;) Also C# allows to inherit from one base-class and from additional interfaces whereas UnityScript only allows one ancestor. Also i don't have a clue of the virtual / override syntax in UnityScript which is actually one of the most important things when you use inheritance.

In C# you would do something like that:

 public class SuperClass : MonoBehavior
 {
     protected virtual void Update()
     {
     }
 }
 
 public class SubClass : SuperClass
 {
     protected override void Update()
     {
         base.Update(); // call the inherited function Update() from SuperClass
     }
 }
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 cowlinator · Mar 25, 2012 at 01:59 AM

Yes it is possible in c#

 SuperClass : MonoBehavior
 {
   ...
 }
 
 SubClass : SuperClass
 {
    void Update()
    {...}
    //etc.
 }
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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity 4.6b20 - Inheritance not working? 1 Answer

function overloading in Javascript 1 Answer

Inherited class doesn't show 2 Answers

Behind the scenes voodoo w/ Instantiate 2 Answers

C# Question - Do I Have to inherit from MonoBehaviour? What happens if I don't? 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