TIL (68) | 2023.11.01 | RandomWalkState

kjg5370·2023년 11월 1일
0

TIL

목록 보기
67/91
post-thumbnail

들어가기 앞서

오늘은 적의 기본 동작을 바꿔서 랜덤하게 특정 범위 내에서 움직이도록 하는 기능을 만들어보았습니다.

오늘 배운 것

  • Random.onUnitSphere
    Unity 게임 엔진에서 사용되는 함수로, 3D 공간에서 무작위로 생성된 방향 벡터를 반환하는 데 사용.

    • Random.onUnitSphere 함수는 다음과 같이 사용

      Vector3 randomDirection = Random.onUnitSphere;

      무작위로 생성된 3D 방향 벡터를 randomDirection 변수에 할당.
      반환된 벡터는 단위 구체(단위 스피어, 단위 구) 위의 임의의 지점을 가리키며, 길이가 1인 벡터임.

  • 네비 메쉬에 적용하기

      void SetRandomDestination()
        {
            // 랜덤한 방향 생성
            Vector3 randomDirection = Random.onUnitSphere * stateMachine.Enemy.Data.detectionRange;
    
            // 현재 위치에 방향을 더하여 랜덤한 위치 얻기
            Vector3 randomPosition = stateMachine.Enemy.originalPosition.position + randomDirection;
    
            // NavMesh 위의 가장 가까운 위치 찾기
            NavMeshHit hit;
            if (NavMesh.SamplePosition(randomPosition, out hit, stateMachine.Enemy.Data.detectionRange, NavMesh.AllAreas))
            {
                // NavMeshAgent의 목적지 설정
                navMeshAgent.SetDestination(hit.position);
            }
        }

    위 코드를 통해 지정된 범위 내에서 랜덤한 방향을 얻어와서 그 방향으로 움직이도록 하는 상태를 완성하였습니다.

진행 사항

  • 적 타입 만들기
    • 기본 적(소총)
      • 기본 애니메이션 처리
        • 애니메이션 종류
          • 대기
          • 걷기
          • 뛰기
          • 사격
    • 근거리 적
      • 근거리 적 만의 애니메이션 처리
        • 근접 공격
        • 콤보 어택
    • 원거리 적
      • 원거리 적 만의 애니메이션 처리
        • 앉기
        • 앉아서 쏘기
  • 레이를 이용하여 플레이어 추적
    • 공격 범위 내에 enemy가 바라보는 방향으로 레이를 쏴서 플레이어면 공격하도록 변경
  • 적 기본 동작 추가
    • RandomWalkState 추가

내일 할 일

  • 섹터 마다 적이 스폰하는 시스템 구현
profile
학생입니다

0개의 댓글