본문 바로가기

Unity3d

적 AI 구현: 기본 추적 및 공격 로직

게임 개발의 영역에서, 가장 흥미로운 기능 중 하나를 구현하는 것은 설득력 있는 적 AI입니다. 이 포스트는 플레이어를 추적하고 공격할 수 있는 적 AI를 Unity에서 설정하는 기본 사항을 안내합니다. 게임 경험을 향상시키는 동적인 도전을 제공하여, 이 가이드는 단계별 지침, 예제 코드 스니펫, 그리고 친절하고 접근하기 쉬운 설명을 목표로 합니다. 끝까지 읽으면, 게임의 적을 생동감 있게 만드는 기본적인 이해를 갖게 될 것이며, 게임 세계를 더 몰입감 있고 매력적으로 만들 수 있습니다.

Unity에서의 AI 이해

Unity는 AI 행동을 개발하기 위한 강력한 프레임워크를 제공합니다. 이는 의사 결정, 이동 및 게임 환경 내에서의 상호 작용을 시뮬레이션할 수 있습니다. 우리가 집중할 두 가지 핵심 개념은 추적(Tracking)공격 로직(Attack Logic)입니다.

  • 추적은 AI가 게임 내에서 플레이어의 움직임을 감지하고 따라가게 합니다.
  • 공격 로직은 플레이어가 특정 거리 내에 있을 때와 같은 특정 조건에서 플레이어와 교전할 수 있게 합니다.

환경 설정

코드로 들어가기 전에, Unity 프로젝트가 올바르게 설정되었는지 확인하세요:

  1. Unity에서 새 3D 프로젝트를 생성합니다.
  2. 바닥에 대한 평면과 플레이어를 나타내는 간단한 캡슐 객체를 추가합니다.
  3. 적 AI를 나타내기 위해 다른 캡슐을 생성합니다.

기본 추적 구현

추적은 적이 지속적으로 플레이어를 향해 움직이게 하는 것을 포함합니다. 이를 달성하기 위해, 우리는 AI 내비게이션을 위해 특별히 설계된 클래스와 메소드를 포함하는 UnityEngine.AI 네임스페이스를 사용할 것입니다.

using UnityEngine;
using UnityEngine.AI;

public class EnemyAI : MonoBehaviour
{
    public Transform player;
    private NavMeshAgent agent;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        agent.SetDestination(player.position);
    }
}
  • 설명: 이 스크립트를 적 객체에 첨부하면, 플레이어를 향해 이동하게 됩니다. NavMeshAgent는 게임 세계를 탐색하는 데 사용되며, SetDestination은 매 프레임 플레이어의 현재 위치로 목표 위치를 업데이트하기 위해 호출됩니다.

공격 로직 제작

공격 로직을 추가하기 위해, 플레이어가 공격해야 할 때를 결정하는 간단한 거리 체크를 도입합니다.

public class EnemyAI : MonoBehaviour
{
    public Transform player;
    private NavMeshAgent agent;
    public float attackRange = 5.0f;

    void Start()
    {
        agent = GetComponent<NavMeshAgent>();
    }

    void Update()
    {
        float distanceToPlayer = Vector3.Distance(player.position, transform.position);

        if (distanceToPlayer

 < attackRange)
        {
            Debug.Log("Attack the player!");
            // 여기에서는 일반적으로 공격 애니메이션 또는 효과를 트리거합니다.
        }
        else
        {
            agent.SetDestination(player.position);
        }
    }
}
  • 설명: 플레이어를 향해 이동하는 것 외에도, 적은 이제 플레이어가 사전에 정의된 공격 범위 내에 있는지 확인합니다. 그렇다면 공격을 트리거합니다(단순히 로그 메시지로 표현됨).

마무리 작업

  • 게임 환경(예: 지형, 벽)이 Unity에서 NavMesh로 베이크되었는지 확인하세요. 이 단계는 NavMeshAgent가 게임 환경을 지능적으로 탐색하는 데 중요합니다.
  • attackRange 및 에이전트 설정(속도 및 가속도 등)을 실험하여 AI의 행동을 미세 조정하세요.

AI 개선

위 가이드는 기초를 제공하지만, 순찰 경로, 시야 감지, 상태 머신이나 행동 트리를 사용한 고급 의사 결정 등 AI 개발에서 탐색할 수 있는 것이 훨씬 더 많습니다.

결론

Unity에서 적 AI를 구현하는 것은 게임을 더 도전적이고 즐거운 것으로 만드는 무한한 가능성을 엽니다. 기본 추적 및 공격 로직으로 시작하여, 점차 더 복잡한 것을 도입하여 깊이 있게 참여하는 AI 행동을 만들 수 있습니다. 핵심은 반복하고 실험하는 것이며, 창의력을 발휘하여 기억에 남는 게임 경험을 만드는 것입니다.

 

더 깊이 있는 기사와 튜토리얼을 위해서는 Binary BeaconsGame Makers Lab과 같은 리소스를 탐색하는 것을 고려하세요.