본문 바로가기
ぺ Let's do it ぺ/⒈유니티(Unity3d)

[별아재군/unity2d] Sort() 기능없이 데이터 정렬하는 방법 설명

by 망고부인 2021. 10. 19.
728x90

각 선수들의 체력 데이터가
player[0].체력 = 5 ;
player[1].체력 = -1 ;
player[2].체력 = 0 ;
player[3].체력 = 3 ;
player[4].체력 = 0 ;
이라면,

// 선수들의 순서를 "제로"로 초기화
for (int a=0 ; a<5 ; a++)
{
player[a].순서 = 0 ;
}

// 선수들 간의 체력 비교하여 크면 후순
for (int a=0 ; a<5 ; a++)
{
for (int b=0 ; b<5 ; b++)
{
if (player[a].체력 > player[b].체력)
{
player[a].순서++;
}
}
}

// 선수들 체력이 "제로"이하면 앞순
for (int a=0 ; a<5 ; a++)
{
if (player[a].체력 < 1)
{
for (int b=0 ; b<5 ; b++)
{
player[b].순서--;
}
}
}

// 순서같은 선수가 있으면 뒷선수 순서++
for (int a=0 ; a<5 ; a++)
{
for (int b=(a+1) ; b<5 ; b++)
{
if (player[a].순서==player[b].순서)
{
player[b].순서++;
}
}
}

이렇게 하면..
체력순으로 정렬이 된다..
player[0].체력 = 5 ; 순서 = 1
player[1].체력 = -1 ; 순서 = -3
player[2].체력 = 0 ; 순서 = -2
player[3].체력 = 3 ; 순서 = 0
player[4].체력 = 0 ; 순서 = -1

이렇게 하면,
체력 > 0 선수를 대상으로,
타겟을 공격 0순위로 할 수 있다..


728x90

댓글