GetSpritesで個々のスプライトを取り出しているということでしょうか?
リファレンスによると、
Due to the nature of the packing algorithm, Sprites in this list are sorted by their area size, in descending order.
パッキングアルゴリズムの性質のため、リスト内のスプライトは面積により降順で並べられます。
とのことですので、大きいスプライトから順番に入っているのではないでしょうか。
面積が同じならどうなのか...といったことも気になりますが、もうこの際リストの順番はあてにならないものとして、スプライト名をもとにGetSpriteで取り出すのがいいかもしれません。
追記
スプライト名の頭に連番を付けているのでしたら、GetSpritesで得たバラバラの配列をあらためて名前順に並べ替えることができそうです。
下記のようなコードで実験してみたところ...
C#
1using System.Linq;
2using UnityEngine;
3using UnityEngine.U2D;
4
5public class GetSpritesTest : MonoBehaviour
6{
7 public SpriteAtlas Atlas;
8 public Sprite[] Sprites;
9
10 private void Start()
11 {
12 if (this.Atlas == null)
13 {
14 return;
15 }
16
17 // GetSpritesによるスプライト取り出し
18 var spriteCount = this.Atlas.spriteCount;
19 var sprites = new Sprite[spriteCount];
20 this.Atlas.GetSprites(sprites);
21
22 // 取得したばかりの配列内のスプライト名を表示
23 Debug.Log("Obtained sprites:");
24 for (var i = 0; i < spriteCount; i++)
25 {
26 Debug.Log("\t" + sprites[i].name);
27 }
28
29 // スプライトを名前で昇順にソートし、結果をSpritesに入れる
30 this.Sprites = sprites.OrderBy(sprite => sprite.name).ToArray();
31
32 // ソート後の配列内のスプライト名を表示
33 Debug.Log("Sorted sprites:");
34 for (var i = 0; i < spriteCount; i++)
35 {
36 Debug.Log("\t" + this.Sprites[i].name);
37 }
38 }
39}
下図のような結果になりました。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/17 11:31
2018/09/17 19:55
2018/09/20 10:39