Question by
samcouper_ · Jul 25, 2018 at 07:24 AM ·
c#scenecolordontdestroyonloaddropdown
Dropdown menu: how to make colour change across multiple scenes
Hi everyone, I am making a settings scene in my game where the user can set the background colour. I have a working code by using different coloured panels but it only applies the colour change in that scene and I want it for all the scenes.
I have tried using DontDestoryOnLoad but that did not work so I was wondering if anyone had any ideas??
Thanks!!
public GameObject WhitePanel;
public GameObject RedPanel;
public GameObject OrangePanel;
public GameObject YellowPanel;
public GameObject GreenPanel;
public GameObject BluePanel;
public GameObject PurplePanel;
public GameObject PinkPanel;
public GameObject GreyPanel;
private void Start()
{
PopulateList();
WhitePanel.gameObject.SetActive(true);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
}
void PopulateList()
{
List<string> colours = new List<string> { "Background Colour:", "White", "Red", "Orange", "Yellow", "Green", "Blue", "Purple", "Pink", "Grey" };
dropdown.AddOptions(colours);
}
private void Awake()
{
//DontDestroyOnLoad(this.WhitePanel);
//DontDestroyOnLoad(this.RedPanel);
//DontDestroyOnLoad(this.OrangePanel);
//DontDestroyOnLoad(this.YellowPanel);
//DontDestroyOnLoad(this.GreenPanel);
//DontDestroyOnLoad(this.BluePanel);
//DontDestroyOnLoad(this.PurplePanel);
//DontDestroyOnLoad(this.PinkPanel);
//DontDestroyOnLoad(this.GreyPanel);
}
void Update ()
{
switch(dropdown.value)
{
case 1:
WhitePanel.gameObject.SetActive(true);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 2:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(true);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 3:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(true);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 4:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(true);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 5:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(true);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 6:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(true);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 7:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(true);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(false);
break;
case 8:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(true);
GreyPanel.gameObject.SetActive(false);
break;
case 9:
WhitePanel.gameObject.SetActive(false);
RedPanel.gameObject.SetActive(false);
OrangePanel.gameObject.SetActive(false);
YellowPanel.gameObject.SetActive(false);
GreenPanel.gameObject.SetActive(false);
BluePanel.gameObject.SetActive(false);
PurplePanel.gameObject.SetActive(false);
PinkPanel.gameObject.SetActive(false);
GreyPanel.gameObject.SetActive(true);
break;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
function based on return value 2 Answers
Destroyed object in DontDestroyOnLoad does not recreate in its main scene 0 Answers
Networking - Syncing color for all clients 0 Answers
How to access dropdown objects childrens? 0 Answers
Has anyone found a way to change Shuriken particles with c# while it is in transit. 1 Answer