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 electricsauce · Oct 08, 2012 at 08:14 PM · polymorphism

passing paramters to a subclass? c#

 using UnityEngine;
 using System.Collections;
 
 
 public class CrateController : MonoBehaviour {
     
     public int breakStrength = 2;
     public int plankLifetime = 3;
     public Transform destructionLevel2;
 }

 
 
 using UnityEngine;
 using System.Collections;
 
 public class CrateController_DL2_Master : CrateController {
     
     
 }

I'm building a destructible crate and I want to declare some parameters in the base class and pass them to its subclasses. How do I keep the variables from being exposed in the subclasses editor window?

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
0

Answer by whydoidoit · Oct 08, 2012 at 08:28 PM

Make them protected or internal rather than public.

Comment
Add comment · Show 3 · 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 electricsauce · Oct 08, 2012 at 08:41 PM 0
Share

Protected variables won't show up in the inspector for the base class though.

avatar image whydoidoit · Oct 08, 2012 at 08:43 PM 0
Share

Ah - I see - the base class can be used on its own as well?

avatar image whydoidoit · Oct 08, 2012 at 09:42 PM 0
Share

Right so one the derived class define the variables again as properties and get and set them with base.

  public class BaseClass : $$anonymous$$onoBehaviour
  {
        public int somethingReallyUseful;
  }

  public class DerivedClass : BaseClass
  {
        public new int somethingReallyUseful
        {
             get { return base.somethingReallyUseful; }
             set { base.somethingReallyUseful = value; }
        }
  }
  

That might do it.

avatar image
0

Answer by Lukas_GMC · Oct 08, 2012 at 09:50 PM

You could write a custom editor for each object and only gui the things you need but thats probably more work than it's worth. I would just keep it with the extra things that you don't need. If you really want those things to not be editable in the base class you could keep the protected and write getter/setter and do something in them like:

 if(this != BaseClass)
   return;
 
 m_var = value;
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

11 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

Related Questions

An OS design issue: File types associated with their appropriate programs 1 Answer

Show DefaultInspector on child classes in list 0 Answers

ScriptableObject : Serialized Polymorphism Classes Can Not be Deserialize with Polymorphism 1 Answer

Polymorphism - Organize my scripts 1 Answer

Polymorphism with generic ScriptableObjects? 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