유니티:몬스터
- 유니티:개요
- 유니티:기본 조작
- 유니티:카메라
- 유니티:오브젝트
- 유니티:코딩기초
- 유니티:UI
- 유니티:게임 내 화면
- 유니티:플레이어
- 유니티:맵
- 유니티:씬
- 유니티:몬스터
- 유니티:아이템
- 유니티:음향
- 유니티:빌드
- 유니티:VR
- 유니티:팁
개요
적의 움직임이나 행동 알고리즘이 필요하다.
행동 알고리즘
행동지표를 결정할 변수를 하나 설정해주면 편하다. public int 행동; 따위로.
그리고 그 행동변수를 바꿔주고, 그 바뀐 행동에 따라 움직이게끔 만들면 된다.
void behavior(){
int random =Random.Range(최소,최대) //최대를 제외한 랜덤값을 반환한다.
행동변수 = random //필요한 것을 주어 행동을 바꾼다.
behavior();
}
이것은 재귀함수로 사용한다.
재귀함수를 쓸 땐 딜레이를 주어야 한다.
Invoke("함수명", 초) //주어진 시간이 지난 후 함수를 실행하는, 유니티제공함수.
지능 높이기
랜덤이다보니까.. 같은 행동만 하게 되는 경우 곤란해질 때도 있다. 이럴 땐 레이를 이용해 위치나 상황에 따라 달리 반응할 수 있게 하는 것이 좋다.
void FixedUpdate(){
Vector frontVec =new Vector(숫자, rigid.velocity.y, 숫자) //y축은 기존 값을 그대로 유지하게끔 하기 위해. 뭐, 상황에 따라 알아서.
Debug.DrowRay(frontVec, 1,2, new Color(1,2,3));
...
if (....)
위 방식처럼 캐릭터의 앞쪽에 레이의 시작점이 오게 해 낭떠러지임을 인식하게 만들어 방향을 바꾸게끔 할 수도 있겠다.
죽음
collider.enabled=false; 이나, gameObject.SetActive(false); 형태로 죽으면 사라지게끔 조작하자.