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 Distant-Object · Jan 14, 2014 at 12:41 AM · arrayclass objectassign-variableclass instance

Varying number of variables depending on power type?

So I am making a game where the player has a 'player class' (like Call of Duty Online but the game isn't a FPS):

 [System.Serializable]
 // Launch attributes
 public class LaunchTypeObj : ScriptableObject
 {
     public float maximumPower = 4.0f;
     public float elasticity = 0.5f; // Between 0-1
     public float windResistance = 0.0f; // Between 0-1
     public float chargeRate = 40.0f;
     public float drop = 0.0f;
     public float roll = 3f; // > 0
     public float maxInaccuracy = 10.0f;
 
     public PowerType[] powers;
 }

each player class has a value for each variable, in addition each player can have a varying number of powers that come with the class (public PowerType[] powers above). Here is what my code for PowerType looks like:

 [System.Serializable]
 // Power type
 public class PowerType : PropertyAttribute
 {
     public enum powerNames {
         AirControl,
         ElevationControl,
         DeflectionControl,
         SpinControl,
         RollControl,
         Thruster,
         AirFlowManipulator,
         RopeSwing
     }
 
     // What power type this is
     public powerNames power;
 
     // These vary depending on the power
     public float[] powerVars;
 }

So I use the enum to determine what the power type is. But depending on what the enum is set to, I need the number of variables for the power type or vary (the powerVars array you see above). For example, if the power type is AirControl then I would just have one float for the Strength, but if the power type where to be Thruster I would want two variables: Strength & Duration.

What is the best way to accomplish what I want to do? With the code above I was thinking I would change the length of the powerVars array depending on what enum is selected in the Inspector. I don't know if this is the best way and I also don't know how to do it yet, although I understand it will be done through a custom editor. I realize I could also just have each of the power types (AirControl, DeflectionControl, ect.) classes that extend the PowerType, and then have the appropriate variables for each type there, but I thought there might be a better way. Is there an example of what I am trying to do that I can look at?

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

18 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

Related Questions

How to declare multiple variables using a for loop in class declaration? 0 Answers

Convert SerializedProperty to Custom Class 7 Answers

Why have error: NullReferenceException: Object reference not set to an instance of an object 1 Answer

Arrays and Classes javascript 1 Answer

Runtime Error IOS AOT Only 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