지속적으로 학습이 진행되도록 만들 것이다.
1. 변수 정리
여러 곳에 퍼져 있는 게임 환경 변수들을 gameManager 코드에 모을 것이다.
playerMove에 있는 게임 환경 변수를 gameManager에 옮긴다.
public int DNASize;
public float ActionInterval;
public float playerSpeed;
DNA = new int[DNASize];
. . .
int time = (int)((Time.time - StartTime)/ActionInterval);
. . .
transform.Translate(Move * Vector3.right * playerSpeed * Time.deltaTime);
위 코드를 수정해 준다.
DNA = new int[gameManager.instance.DNASize];
. . .
int time = (int)((Time.time - StartTime)/gameManager.instance.ActionInterval);
. . .
transform.Translate(Move * Vector3.right * gameManager.instance.playerSpeed * Time.deltaTime);
값을 할당해 준다.
해더를 추가하여 창을 꾸며준다.
[Header ("DNA Setting")]
public int DNASize;
public int GeneSize;
public int MutationSize;
[Header ("Player Number")]
public int PlayerNumber;
[Header ("Player Setting")]
public float ActionInterval;
public float playerSpeed;
[Header ("etc.")]
public GameObject BaseObject;
public GameObject ParentObject;
public List<GameObject> ObjectList = new List<GameObject>();
2. 플레이어 초기화
초기화 함수를 작성해 준다.
void Re_Start(GameObject player)
{
playerMove playerCode = player.GetComponent<playerMove>();
playerCode.StartTime = Time.time;
player.transform.position = ParentObject.transform.position;
player.transform.eulerAngles = Vector3.zero;
player.SetActive(true);
}
SetObiect 함수와 중복되는 게 존재함으로 SetObiect 함수도 수정해 준다.
void SetObject()
{
for (int i = 0; i < PlayerNumber; i++)
{
ObjectList.Add(Instantiate(BaseObject, ParentObject.transform));
playerMove ObjectCode = ObjectList[i].GetComponent<playerMove>();
ObjectCode.DNA = new int[DNASize];
for(int L = 0; L < DNASize; L++) ObjectCode.DNA[L] = Random.Range(0,6);
Re_Start(ObjectList[i]);
}
}
playerMove코드에서 Stert부분은 필요가 없어졌으므로 삭제해 준다.
Reset 함수에 초기화 함수를 넣고 추가로 다른 값도 초기화해 준다.
LiveObjectNumber = PlayerNumber;
for (int i = 0; i < PlayerNumber; i++) Re_Start(ObjectList[i]);
학습이 진행된다.
'Project > [Unity] 지진 시뮬레이션' 카테고리의 다른 글
[Unity] 지진 시뮬레이션 14 - 문제 분석 및 수정 (0) | 2024.05.05 |
---|---|
[Unity] 지진 시뮬레이션 12 - 유전 알고리즘 (0) | 2024.04.04 |
[Unity] 지진 시뮬레이션 11 - 생존 리스트 생성 (0) | 2024.04.03 |
[Unity] 지진 시뮬레이션 10 - 오브젝트 복제 (0) | 2024.04.02 |
[Unity] 지진 시뮬레이션 9 - 유전학습 DNA 생성 (0) | 2024.04.01 |