유니티:몬스터

학교의 모든 지식. SMwiki
Sam (토론 | 기여)님의 2020년 9월 9일 (수) 16:48 판 (새 문서: {{유니티}} == 개요 == 적의 움직임이나 행동 알고리즘이 필요하다. <br /> == 행동 알고리즘 == 행동지표를 결정할 변수를 하나 설정해주면...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

틀:유니티

  1. 유니티:개요
  2. 유니티:기본 조작
    1. 유니티:에셋스토어
  3. 유니티:카메라
  4. 유니티:오브젝트
    1. 유니티:데이터 입력받기
    2. 유니티:오브젝트 이동(오브젝트 조작)
    3. 유니티:힘으로 오브젝트 이동
    4. 유니티:충돌 이벤트
    5. 유니티:오브젝트 작성 tip
    6. 유니티:프리팹
  5. 유니티:코딩기초
    1. 유니티:C sharp 코딩 편의기능
    2. 유니티:MonoBehaviour
    3. 유니티:이벤트 메서드
    4. 유니티:컴포넌트 조작하기
  6. 유니티:UI
  7. 유니티:게임 내 화면
  8. 유니티:플레이어
    1. 유니티:모델
    2. 유니티:캐릭터 이동
    3. 유니티:애니메이션
    4. 유니티:주인공 시점
  9. 유니티:맵
    1. 유니티:투명한 벽 만들기
    2. 유니티:내비게이션
  10. 유니티:씬
  11. 유니티:몬스터
  12. 유니티:아이템
  13. 유니티:음향
    1. 유니티:배경음
    2. 유니티:효과음
  14. 유니티:빌드
  15. 유니티:VR
    1. 유니티:VR:UI
    2. 유니티:VR:VR로 변환
  16. 유니티:팁

개요

적의 움직임이나 행동 알고리즘이 필요하다.

행동 알고리즘

행동지표를 결정할 변수를 하나 설정해주면 편하다. 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 (....)

위 방식처럼 캐릭터의 앞쪽에 레이의 시작점이 오게 해 낭떠러지임을 인식하게 만들어 방향을 바꾸게끔 할 수도 있겠다.