[Unity] 코루틴(Coroutine)
·
Game Programming/Unity Engine
코루틴(Coroutine)이란?유니티 엔진에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니다. 주로 비동기적 작업을 처리할 때 사용되며, 게임 루프의 각 프레임에서 특정 시점에 일시 중지되고 다시 시작될 수 있습니다.  대부분의 경우 메서드를 호출하면 실행을 완료한 뒤 호출한 메서드에 제어와 선택적 반환 값을 반환하게 됩니다. 즉, 메서드 내에서 발생한 모든 행동은 단일 프레임 업데이트 내에 발생하게 됩니다. 하지만 코루틴을 사용한다면 여러 프레임에 걸쳐 실행할 수 있는 코드를 작성할 수 있습니다. 유니티 Documentation에서는 HTTP 전송, 에셋 로드, 파일 I/O 완료 등을 기다리는 것과 같이 긴 비동기 작업을 처리해야..
[Unity] Raycast, LayerMask
·
Game Programming/Unity Engine
개요게임을 제작하다 보면 특정 방향에 물체가 있는지 판별해야 하는 경우가 생깁니다. 예를 들어 FPS 장르의 게임에서 총알의 궤적을 계산하거나, RTS 장르의 게임에서 클릭한 지점을 감지하는 등의 상황이 있습니다. 유니티(Unity)에서는 Raycast를 사용하여 특정 방향으로 광선을 쏘아 물체와의 충돌 여부를 감지할 수 있습니다.이번에는 간단히 Raycast를 사용하는 방법에 대해 정리해보도록 하겠습니다. RaycastRaycast는 특정 지점(origin)에서 특정 방향(direction)으로 광선(ray)을 발사하며 해당 광선에 충돌된 물체에 대한 정보를 얻을 수 있는 기술입니다. 유니티(Unity)에서는 Physics.Raycast() 함수를 통해 다음과 같이 사용이 가능합니다.Physics.Ra..
[Unity] 오브젝트 이동 방법, Delta Time, 입력 받기
·
Game Programming/Unity Engine
개요유니티(Unity)에서 오브젝트를 이동시키는 방법은 여러 가지가 있습니다.이번에는 Transform 컴포넌트를 사용해 직접 오브젝트를 이동시켜보도록 하며, DeltaTime이 어떤 것이고, 왜 사용해야 하는지에 대해 정리해보도록 하겠습니다.Transform 컴포넌트를 이용한 이동 1모든 게임 오브젝트는 Transform 컴포넌트를 가지고 있습니다. 해당 컴포넌트를 사용해 특정 오브젝트를 이동시켜보도록 하겠습니다. 우선, 직접 position을 설정하는 방법입니다.해당 오브젝트가 게임에 등장함과 동시에 특정 위치로 지정하는 코드는 다음과 같습니다.void Start(){ // 오브젝트의 위치를 (3, 1, 3)으로 지정 transform.position = new Vector3(3.0f, 1..
[Unity] 프리팹(Prefab)
·
Game Programming/Unity Engine
개요언리얼 엔진을 통해 블루프린트 클래스를 생성하여 레벨에 같은 유형의 객체를 여러 개 배치하는 것과 유사하지만 조금은 다른 유니티 엔진의 프리팹(Prefab)에 대해 공부한 내용을 간단하게 정리해보도록 하겠습니다.프리팹(Prefab)이란?프리팹은 Unity에서 특정 게임 오브젝트와 그 구성 요소를 미리 정의해 놓은 템플릿입니다. 게임 오브젝트를 생성, 설정 및 저장할 수 있으며, 해당 게임 오브젝트의 모든 컴포넌트, 프로퍼티 값, 자식 게임 오브젝트를 재사용 가능한 에셋으로 만들 수 있습니다. 프리팹(Prefab) 생성 및 예시프리팹을 생성하는 방법은 매우 간단합니다.Hierarchy 탭에서 위치한 게임 오브젝트를 Project 탭으로 드래그 & 드롭을 하면 생성됩니다. 프리팹을 어떤 상황에 사용하는지..
[Unity] 로그 출력 및 프레임 제한 설정
·
Game Programming/Unity Engine
개요이번에는 간단히 C# 스크립트를 추가해보며, 로그 출력 및 프레임 제한을 설정하는 방법에 대해 간략하게 정리해보도록 하겠습니다.C# Script 추가C# 스크립트를 추가하는 방법은 매우 간단합니다. Project 탭의 +버튼을 눌러 C# Script를 추가할수도 있으며, 빈 공간을 우클릭하여 새로운 C# Script를 추가할 수도 있습니다. 생성된 해당 스크립트는 게임 오브젝트로 드래그 & 드롭하여 새로운 컴포넌트로 추가가 가능합니다.로그 출력게임을 개발하며 로그는 다양한 측면에서 유용하며, 특히 디버깅이나 현재 상태를 확인하는 등의 작업에서 유용하게 사용됩니다. 위에서 생성한 스크립트를 열어보면 Start()와 Update() 함수가 정의되어 있는 것을 확인해볼 수 있습니다.Start() : 게임이..
[Unity] 유니티 공부 시작. 게임 오브젝트 및 컴포넌트
·
Game Programming/Unity Engine
개요저는 지금까지 C++ 및 언리얼 엔진에 대해 공부해 왔으며, 게임 클라이언트 프로그래머가 되기 위해 준비 중입니다.최근 여러 기업들에 이력서를 넣어보며 생각보다 언리얼 엔진을 사용하는 기업의 채용 공고가 자주 올라오지 않기에 조금씩 유니티 엔진을 사용해보기로 마음먹고, 공부한 내용이나 개발을 진행하며 막히는 부분에 대해 정리를 해볼 예정입니다.게임 오브젝트(Game Object)게임 오브젝트(GameObjects) 는 Unity의 기초적인 오브젝트로 예를 들어, 캐릭터, 아이템, 환경 등 모든 것이 게임 오브젝트로 표현됩니다. 독자적으로 많은 것을 하기보다는 실질적 기능을 수행하는 컴포넌트(Components) 의 컨테이너 역할을 합니다. 게임 오브젝트는 항상 부착된 Transform 컴포넌트를 가지..