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 /
  • Help Room /
avatar image
0
Question by Filippo94 · Dec 02, 2016 at 04:45 PM · scripting problemclasses

Access child class variable inside child class script as a parent class of the parent script

Hello, I have a little class question, using C# language.

I have multiple vehicles, which have a script child of a general physics script:

 public class Control : MonoBehaviour {
     [...]
 }
 
 public class CarControl : Control {
    [...]
 }
 
 public class TruckControl : Control {
     [...]
 }

What I wanted to achive is a similar thing for some physics parameters shared across the vehicles

 public class VehiclePhysics {
     public float engineTorque;
     public float brakeTorque;
     public float fuelTank;
     public float currentFuel;
     [...]
 }
 
 public class TruckPhysics : VehiclePhysics {
     public float maxTrailAngle;
     [...]
 }

so to be able to have a VehiclePhysics type variable in the parent, but to be able also to pack inside it the specific values per vehicle

 public class Control : MonoBehaviour {
     public VehiclePhysics physics;
     [...]
 }
 
 public class TruckControl : Control {
     //here I should declare the "physics" variable of type "TruckPhysics";
     [...]
 }

The problem is I have no idea how to declare the class in the child script, so that if I access it as, let's say

 void OnTriggerEnter (Collider other) {
     other.GetComponent<Control>().physics.currentFuel += 50;
 }

the currentFuel variable contained in the TruckPhysics class (child class of the VehiclePhysics) of TruckControl script (child class of Control script) should be set, and would work the same way with all the other vehicles.

Yes, I know I could store VehiclePhysics in a variable, and then create a per-vehicle variable containing the rest of the specific parameters, and have the physics split across those two classes, but I wondered if it would've been possible to solve this "problem" with a cleaner solution, like this one. Is it possible?

Thanks in advance :).

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

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

94 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 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

Multiple PowerUps (One ItemBox) 0 Answers

How can I add functions via a scriptswizzard variable? 0 Answers

ParticleSystemMultiplier class missing a reference 2 Answers

How to add Script1.List.Class to Script2.List.Class? 0 Answers

Confused as hell about static classes and stuff. 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