How I Sort a List at Start?,Sorting a List on Start
So I'm trying to use the Sort method on my list and it is working, but just on Void Update. When I try to use it in the void start or a Switch it does not sort the list. I want to organize my list just once to be able to remove and change values without Rearranging, but as I said that only works on Update if I remove like MyList.Remove(Mylist[0]) it will basically delete the list. This is how and what it works that I am using
void Start()
{
MyList.AddRange(GameObject.FindGameObjectsWithTag("Exemple"));
}
void Update()
{
MyList.Sort(SortFunction);
}
private int SortFunction(GameObject A, GameObject B)
{
StatusScript a = A.GetComponent<StatusScript>();
StatusScript b = B.GetComponent<StatusScript>();
if (a.Speed > b.Speed)
{
return -1;
}
else if (a.Speed < b.Speed)
{
return 1;
}
return 0;
}
}
This is How a Want to use
void Start() { MyList.AddRange(GameObject.FindGameObjectsWithTag("Exemple")); }
void Update()
{
switch (ListStates)
{
case States.Organize:
MyList.Sort(SortFunction);
ListStates = States.MakeAction;
break;
case States.MakeAction:
// Change values and send to Remove or Add
break;
case States.Remove:
break;
case States.Add:
break;
default:
break;
}
}
private int SortFunction(GameObject A, GameObject B)
{
StatusScript a = A.GetComponent<StatusScript>();
StatusScript b = B.GetComponent<StatusScript>();
if (a.Speed > b.Speed)
{
return -1;
}
else if (a.Speed < b.Speed)
{
return 1;
}
return 0;
}
Once the list is sorted, if you change the speed values of the object or add/remove elements, the list won't sort itself automatically until you call Sort again, you know this, right?
Your answer
![](https://koobas.hobune.stream/wayback/20220613023659im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Generate unique random numbers and sort them. 3 Answers
Sort list by distance AND by being active 3 Answers
Compare and sort Input 0 Answers
Sort a list of class by a vector variable in the class 2 Answers