Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

C# Making three seperate functions regarding to color sliders into one

So im trying to simplify a a script that adjust the speed of the model's rotation and color with sliders:

private float c1; // the three color values for the three color sliders : Red, Green and Blue

private float c2;

private float c3;

public ChangeColour cC; // class object to change the color value

public RotateFree r; // class object to rotate the model

void Start()

{

c1 = 1f; c2 = 1f; c3 = 1f;

}

 public void UpdateR(float rotation) // Update the rotation value from the AnglerPerSec value
 {
     r.anglePerSec = rotation;
 }
 public void UpdateC() //Update the color based on the value of each color slider
 {
     cC.Change(new Color(c1, c2, c3));
 }

 public void UpdateCR(float r) //Update the "RED" value
 {
     c1 = r;
     UpdateC();
 }

 public void UpdateCG(float g) //Update the "GREEN" value
 {
     c2 = g;
     UpdateC();
 }
 public void UpdateCB(float b) //Update the "BLUE" value
 {
     c3 = b;
     UpdateC();
 }


Now what I have here already works, as Unity will let me select the "update CR,CG,CB" functions as dynamic function events for my 3 sliders. However I want to know if there is a way to shorten those 3 functions in one?

I tried to write it as

"public void UpdateRGB(float r, float g, float b)

{

c1 =r; c2 = g; c3 = b; UpdateC();

}

I've also tried "UpdateC(r,g,b);" and "Update(c1,c2,c3);" but after I save/attached the code, and try to select those functions in the event section for my 3 sliders, neither UpdateRGB nor Update C will show up in the dynamic function selection. Am I doing something wrong here?

Answers

  • HNJHNJ Member

    The functions still have parameters but they are not showing in dynamic functions? Try to restart editor. Do you have any errors in the Console?

  • Dynamic function selector only shows function which has only one parameter and aslo the parameter must be the same type as the ui's returning value.

  • You can still shorten it into one function just take a slider as a parameter then assign the slider from inspector then use the sliders name to access the variable in current script by getclass and getname stuff and change its value to the sliders value then call the update to update the values.

Sign In or Register to comment.