학습이 진행되었으나 매우 더디게 진행되었으며 일정 수준 이상으로는 진행이 멈췄다.
빠른 학습을 위해 50 이하가 되면 초기화하도록 하였으나 이로 인해 다른 플레이어도 잘 가던 도중에 초기화가 된다.
그리고 모험심이 큰 플레이어가 벽에 훨씬 잘 부딪히기 때문에 잘 탈락하고, 이에 따라 모험을 하려는 플레이어가 줄어든다.
여러 가지 이유가 있겠지만 먼저 이 문제들을 해결해야 할 것 같다.
벽에 닿는 것으로 탈락 판정을 하는 것이 치명적으로 학습을 더디게 하기 때문에 이를 없애고, 일정한 시간을 두어 턴을 진행시키도록 할 것이다.
1. 벽 이동 제한
벽에 접촉한 방향을 알아내고 이 방향으로의 추가적인 진행을 막을 것이다.
playerDamage에 벽에 닿으면 탈락하는 코드를 지운다.
else if(other.transform.parent.gameObject.tag == "wall") GameOver();
그리고 playerMove에 벽에 닿고 있으면 반대 방향으로 이동하여 빠져나오는 코드를 추가하면 쉽게 구현할 수 있다.
void OnTriggerStay(Collider other)
{
if(other.transform.parent.gameObject.tag == "wall")
{
transform.Translate(2*Vector3.left * gameManager.instance.playerSpeed * Time.deltaTime);
}
}
2. 재시작 수정
대부분이 생존할 수 있게 됨으로 50명 이하가 되면 초기화하는 기존 방법에서 일정 시간이 지나면 초기화하는 코드로 바꿔준다.
gameManager에 타이머를 추가하여 재시작할 때마다 초기화해 준다.
float StartTime;
void Start()
{
StartTime = Time.time;
}
void Reset()
{
StartTime = Time.time;
}
특정 시간이 지나면 초기화한다.
public float time;
void Update()
{
if(time < Time.time - StartTime) Reset();
}
그래도 학습이 많이 더디다. 속도를 늘릴 방법을 알아봐야 한다.
'Project > [Unity] 지진 시뮬레이션' 카테고리의 다른 글
[Unity] 지진 시뮬레이션 13 - 반복 학습 (0) | 2024.04.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 |