본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quater - 몬스터 순찰지역 랜덤생성

시도1

 -몬스터가 리스폰되면 해당 몬스터가 미리지정한 spot으로 이동 후  
viewDistance를 반지름으로 하는 범위에 90도 간격으로 4개의 지점을 
순찰지점으로 자동지정하여 최초 이동한 지점을 포함하여 총 5지점을 랜덤하게 순찰 

참고 : hannom.tistory.com/185

 

*Mathf.Pow(x,y) = x의 y승

*Mathf.Sqrt(x) = 루트x

 

 

몬스터가 생성되자마자 자신 주위 반지름 3인 랜덤지점에 코인을 생성하고 지정해둔 위치로 이동..

지정해둔 위치에서 기다렸다가 위에서 코인을 생성한 위치로 이동함과 동시에 기다린 위치 주위 반지름3인 랜덤지점에 코인을 생성

 

즉, 몬스터가 다른위치로 출발할 시점에 있던 위치의 주위 반지름3인 랜덤위치를 잡게 되어 

순서도 꼬이고 그 위치가 이동불가능한 지역인 벽 쪽에 붙어서 생성될 확률도 생기기 때문에 다른 방법을 고안

 

 

 

시도2(채택)

미리 순찰위치정보만 담은 서로다른 Transform 컴포넌트만 있는 빈 오브젝트를 6개 만들어서 씬에 배치하고

해당 오브젝트들을 배열안에 담은 다음

해당 배열의 원소 숫자만큼(0 ~ 6)을 랜덤으로 담은 리스트를 생성하고

해당 리스트에서 첫번째 원소를 꺼내어 몬스터가 이동할 위치 정보로 사용하고 사용한 원소는 제거하여 밀어내는 방식으로 구현