우리가 만들 게임은 Flappy Bird 의 Copy Game인 Flappy Plane 입니다.
언젠가 한번쯤 해본 듯한 게임을 만들어 보았다.
콘솔창만 보다가 Unity에서 보여지는 게임씬을 보니 설렜는데,
막상하니까 엄청 어려웠다. 따라가기도 벅찬 느낌이랄까...
장애물의 위치가 바뀌지 않고 계속 된다면 같은 상황만 반복 되고, 지루해지게 된다.
public Vector3 SetRandomPlace(Vector3 lastPosition, int obstacleCount)
{
float holeSize = Random.Range(holeSizeMin, holeSizeMax);
float halfHoleSize = holeSize / 2;
topObject.localPosition = new Vector3(0, halfHoleSize);
bottomObject.localPosition = new Vector3(0, -halfHoleSize);
Vector3 placePosition = lastPosition + new Vector3(widthPadding, 0);
placePosition.y = Random.Range(LowPosY, highPosY);
transform.position = placePosition;
return placePosition;
}
위 코드를 다른곳에서 사용하여 장애물을 obstacleCount만큼 계속해서 생성해 주는데,
고정된 위치가 아니라 랜덤한 값을 줘서 계속해서 바뀌게끔 만들어 주었다.
holeSize = 범위 내 랜덤 값
halfHoleSize = holeSize / 2
±holeSize를 topObject, bottomObject.localPosition y값에 넣어줌
placePosition = lastPosition에서 widthPadding만큼 x가 이동한 값
placePosition.y = 범위 내 랜덤 값
transform.position = placePosition > 다음을 위해 위치를 저장해둠
return placePosition
이해하기 쉽게 글로 적어보았다. 어떻게 동작하는지 어느정도 이해가 된거 같긴하다.

결과적으로 완성은 했고, 빌드한 걸로 플레이도 잘된다.
근데 이해가 안되고 넘어간 부분이 너무너무너무너무 많아서
다시 되짚어 봐야될 것 같다...
그리고 이게 죽어도 점수가 장애물을 지나가면 1번만 올라가야 되는데,
죽은 상태에서도 OnTrigger가 발동 되서 계속 올라간다.
이것도 한번 고쳐봐야겠다.

그냥 obstacle에 붙여놓은 BoxCollider의 크기를 수정해줬더니
내가 생각한 느낌으로 동작하게 되었다.

이거거든~