Hi, I’m trying to sort an array of intergers that looks somewhat like this:
This is my sorting function:
I want it to put the highest number on top, but the zeros on the bottom of the array. Does anyone know how I can get it to do that?
Use a smarter Compare function:
function compare(a: int,b: int)
if (a == b) return 0;
if (a == 0) return +1;
if (b == 0) return -1;
// otherwise compare normally
And then sort the list. You will have to use the list from the System.Collection.Generic namespace. You cannot use the Unity-Array class, as it lacks a customizable sort operation.
List list = new List();
// add numbers
list.Sort(); // sorts ascending - this is what you need I guess
list.Reverse(); // now descending