본문 바로가기

Unity/Unity2D_Flat

Unity2D - 몬스터 AI

1.몬스터에 x축벡터를 랜덤하게 부여하여 속력으로 주기

 

(1). Think 함수 선언 - Random.Range(-1.2)로 랜덤한 값을 추출하여 random변수에 초기화하고

                          - Invoke("Think",3) :자기 자신의 함수를 3초마다 실행하도록 자기자신 함수안에 작성(재귀함수) 

 

* - Ramdom.Range(int min , int max ) :  최솟값(min) ~ 최댓값 (max-1) 사이의 랜덤한 정수값  

  - Ramdom.Range(float min ,float max ) : 최솟값(min) ~ 최댓값 (max) 사이의 랜덤한 실수값   

  - Invoke("함수이름", x초) :  x초마다 "함수이름"의 함수를 호출하도록하는 함수

 

(2) - 추출한 랜덤한 random 정수값을 해당 오브젝트(몬스터)의 x축 벡터로 사용

 

(3) - 결과 : 3초마다 새로운 ramdom값(-1, 0, 1)을 부여받아 몬스터가 좌측,우측,정지를 반복

 

 

 

2.몬스터가 랜덤하게 움직이다가 낭떨어지를 만나면 뒤로 돌아가도록 하기

 (1) -  몬스터가 움직이는 방향 앞부분에 레이케스트 그려주기

 

 

(2) - 실제로 레이케스트 발사, 낭떨어지를 캐스팅했을때 반대방향으로 돌기

 

 

3.몬스터 idle, walk 애니메이션 적용하기

(1) - animator에서 idle상태와 walk 상태를 연결하고 walkSpeed 파라미터를 int값으로 생성

 

(2) -셋팅되어있는 walkspeed의 값이 0과 Equals 즉 같을때  walk -> idle 

 

(3) -셋팅되어있는 walkspeed의 값이 0과NotEquals ㄴ즉 다를때  idle ->walk  

 

(4) - Animator = animator; 로 가져와서 

animator.SetInteger("walkSpeed", random)  즉 애니메이터 안의 walkSpeed 파라미터의 int 값을 랜덤으로 셋팅한다

이러면 셋팅된 값에 따라 값이 0이면 idle 상태 값이 0이 아니면(-1, 1) walk상태로 애니메이터가 변함

(5) FlipX(좌우 뒤집기) 적용하기 

'Unity > Unity2D_Flat' 카테고리의 다른 글

Unity2D - 몬스터공격 , 게임매니저 생성 및 점수획득  (0) 2020.11.25
Unity2D - 장애물구현  (0) 2020.11.22
Unity2D - 디버그 및 2단점프  (0) 2020.11.22
Unity2D - 타일맵  (0) 2020.11.18
Unity2D - 점프  (0) 2020.11.18