Programming/Unity
가중치 랜덤
Inner-Peace
2020. 8. 12. 10:13
반응형
private int GetRandomIndex() {
int[] weights = {1, 3, 5, 6, 5, 3, 1, 3}; <- 가중치에 대한 정보
int total = 0;
for (int i = 0; i < weights.Length; ++i) {
total += weights[i];
}
int pivot = Mathf.RoundToInt(total * Random.Range(0.0f, 1.0f)); <- 해당하는 위치 뽑기
int weight = 0;
for (int i = 0; i < weights.Length; ++i) {
weight += weights[i];
if (pivot <= weight) {
return i;
}
}
return defaultIndex; <- 안뽑혔을경우 예외처리
}
반응형