728x90
반응형
1. 리스트 섞기
private List<T> ShuffleList<T>(List<T> list)
{
int random1, random2;
T temp;
for (int i = 0; i < list.Count; ++i)
{
random1 = Random.Range(0, list.Count);
random2 = Random.Range(0, list.Count);
temp = list[random1];
list[random1] = list[random2];
list[random2] = temp;
}
return list;
}
2. 배열 섞기
private T[] ShuffleArray<T>(T[] array)
{
int random1, random2;
T temp;
for (int i = 0; i < array.Length; ++i)
{
random1 = Random.Range(0, array.Length);
random2 = Random.Range(0, array.Length);
temp = array[random1];
array[random1] = array[random2];
array[random2] = temp;
}
return array;
}
3. 예제
using System.Collections.Generic;
using UnityEngine;
public class Shuffle : MonoBehaviour
{
void Start()
{
List<int> lists = new List<int>();
lists.Add(0);
lists.Add(1);
lists.Add(2);
lists.Add(3);
lists.Add(4);
lists = ShuffleList(lists);
for (int i = 0; i < lists.Count; i++)
{
Debug.Log(lists[i]);
}
int[] arrays = new int[5];
arrays[0] = 0;
arrays[1] = 1;
arrays[2] = 2;
arrays[3] = 3;
arrays[4] = 4;
arrays = ShuffleArray(arrays);
for (int i = 0; i < arrays.Length; i++)
{
Debug.Log(arrays[i]);
}
}
private List<T> ShuffleList<T>(List<T> list)
{
int random1, random2;
T temp;
for (int i = 0; i < list.Count; ++i)
{
random1 = Random.Range(0, list.Count);
random2 = Random.Range(0, list.Count);
temp = list[random1];
list[random1] = list[random2];
list[random2] = temp;
}
return list;
}
private T[] ShuffleArray<T>(T[] array)
{
int random1, random2;
T temp;
for (int i = 0; i < array.Length; ++i)
{
random1 = Random.Range(0, array.Length);
random2 = Random.Range(0, array.Length);
temp = array[random1];
array[random1] = array[random2];
array[random2] = temp;
}
return array;
}
}
728x90
반응형
'프로그램 > 유니티 스크립트 소스' 카테고리의 다른 글
[유니티 스크립트 소스] 음력 구하기 (0) | 2021.02.20 |
---|---|
[유니티 스크립트 소스] 자식 오브젝트 정렬 (0) | 2021.02.09 |
[유니티 스크립트 소스] 유니티 에디터에서 재생 클릭시 씬 자동 저장 (0) | 2021.02.02 |
[유니티 스크립트 소스] 마우스 더블 클릭 (0) | 2021.02.02 |
[유니티 스크립트 소스] 마우스 이벤트 보내기 (0) | 2021.02.02 |