- Home /
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?
Your answer
 
 
             Follow this Question
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
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                