기능 설명NPC가 배경에서 랜덤하게 움직이는 기능을 필요로 하였다.이때, NPC가 움직일 때, 장애물과 겹치면 안 된다. 구현 알고리즘랜덤한 위치를 선정한다.그 위치에서 Physics2D.OverlapCircle을 사용하여 장애물의 반경에 속해 있는지 확인한다. (이때 장애물 레이어를 따로 설정해 준다.)만약, 그 위치가 장애물 위면 다시 랜덤한 위치를 선택한다. 만약, 그 위치가 정상 위치라면 목표 경로에 장애물이 있는지 한 번 더 체크한다.그래도 정상 위치라면 그 좌표로 이동하고, 장애물이 있는 경로라면 다시 랜덤한 위치를 선택한다.AnimalController.cs더보기using System.Collections;using UnityEngine;public class AnimalController ..
카메라 구현에 있어서 Cinemachine을 선택한 이유기본 카메라를 사용하게 되면 직접 스크립트를 짜서 기능을 구현해야 하는 경우가 많다. 구현해야 할 기능들이 많아지면 많아질수록 이는 부담으로 다가온다.하지만 Cinemachine을 사용하면 Cinemachine이 제공하는 강력한 기능들을 손쉽게 프로젝트에 적용할 수 있다. 구현해야 하는 것2D 모바일 환경에서 드래그로 맵을 둘러볼 수 있는 기능.이때 카메라는 특정 구역 바깥으로 나가지 않아야 한다. 구현 방법1. UI로 DragPanel 만들고, 스크립트 짜기UI로 DragPanel을 만들어 터치할 부분에 오브젝트가 있어도 UI의 특성을 활용해 드래그가 가능하게 했다.또한 DragPanel 밑 오브젝트를 클릭해야 할 경우도 있으므로 Canvas의 G..
Behavior Tree는 시스템의 의사 결정 및 행동 관리를 구조화하고 계층화된 방식으로 표현하는 모델이다.복잡한 행동을 논리적으로 설계하고, 확장성을 제공하는 데 유용하다.구조Behavior Tree는 트리 형태의 계층 구조로 이루어져 있으며, 트리의 각 노드는 특정 의사 결정 또는 행동 수행을 나타낸다. 1. Root Node트리의 최상위 노드이며, 행동의 시작점이다.2. Composite Node여러 하위 노드를 포함하며, 트리의 흐름을 제어한다.예로 Selector, Sequence가 있다.3. Decorator Node특정 조건을 추가하거나 노드의 결과를 수정한다.조건 충족 시에만 실행 등 4. Leaf Node (Action Node)실제로 행동을 수행하거나 조건을 평가한다.행동: 캐릭터의 ..
LoadType을 Streaming으로 바꿔준다. Streaming 방식은 큰 용량의 파일을 메모리에 전부 로드하지 않고 파일을 디스크에서 실시간으로 읽어들여 재생하는 방식이다.특징메모리 사용량이 적다.오디오 파일 전체를 한 번에 로드하지 않는다.로드 시간은 짧지만, 디스크 I/O 속도에 영향을 받는다.용도BGM음성 대화용량이 큰 사운드 파일장점낮은 메모리 사용량빠른 로드 시간큰 파일 처리 가능단점디스크 I/O 의존모바일기기에서 성능 문제