Beatchoi's Blog

List of Postings

유니티 자료 구조 - 큐
유니티 자료 구조 - 큐

큐 :: Queue

기본적인 자료구조 중 하나인 큐(queue)는 리스트나 배열과 달리 데이터를 집어넣거나(Enequeue), 빼내는(Dequeue) 두개의 작업으로 데이터를 관리합니다.
이말은 리스트와는 다르게 데이터의 순서를 재배치하거나 중앙의 데이터를 삭제, 삽입하는 등의 편집을 할수 없다는 뜻입니다.
편집이나 순서가 크게 상관이 없는 데이터라면 보다 간단한 구조로 되어있는 큐를 통해 관리를 하는것이 더 좋을 때가 있습니다.

큐는 선입 선출의 개념입니다. 데이터가 삽입될 때 하나의 터널에 들어간다고 생각하면 쉽습니다.
데이터가 Enqueue 되면 터널에 차가 들어가듯이 데이터가 삽입됩니다.
데이터가 Dequeue 되면 터널에 맨 처음으로 들어간 차가 제일 처음 나오듯이 가장 먼저 Enqueue된 데이터가 호출됩니다.
데이터가 Dequeue로 호출되면 해당 큐에 있던 데이터는 호출되며 동시에 큐에서 제거됩니다.
아래 게임오브젝트 큐를 만들어 보면서 알아봅시다.

유니티3D 에디터에서

스크립트 생성

프로젝트 창에서 DataStructure_Queue.cs 스크립트를 생성합니다.
DataStructure_Queue.cs스크립트를 열어 다음과 같이 작성합니다.

리스트 관련 메소드들은 아래 스크립트의 주석으로 설명되어 있습니다.

유니티 자료 구조 - 리스트
유니티 자료 구조 - 리스트

리스트 :: List

자료구조 라는 말에 너무 어렵게 접근하지 말고 유니티에서 개발을 할때 필요한 자료들을 편리하게 정리할 수 있는 기법으로 접근합니다.
가장 기본적인 자료구조인 배열 다음으로 편하게 활용할 수 있는 기법입니다.

유니티3D 에디터에서

스크립트 생성

프로젝트 창에서 DataStructure_List.cs 스크립트를 생성합니다.
DataStructure_List.cs스크립트를 열어 다음과 같이 작성합니다.

리스트 관련 메소드들은 아래 스크립트의 주석으로 설명되어 있습니다.

시야 내 타겟 자동 설정 - Field of VIew
시야 내 타겟 자동 설정 - Field of VIew

몬스터의 시야를 설정하고 타겟을 자동 설정해보기.

시야 :: Field of View

AI 캐릭터가 필요한 콘텐츠에서는 AI 캐릭터의 시야와 해당 캐릭터가 플레이어를 선택하는 조건등을 고민하게 됩니다.
Field of View를 AI 캐릭터에 설정하여 해당 캐릭터의 시야에 플레이어가 들어오게 되면 자동으로 타겟팅 할수 있도록 해봅니다.

유니티3D 에디터에서

스크립트 생성

먼저 fieldofview.cs 스크립트를 생성하고 다음과 같이 작성합니다.

```ruby using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;

캐릭터 구성하기 - 가상 함수 활용하기
캐릭터 구성하기 - 가상 함수 활용하기

선수포스팅 :: Pre-requisite

캐릭터 구성하기 - 캐릭터 스탯 관리하기

가상함수의 활용 :: Virtual Function

각 캐릭터의 스탯 클래스에 가상함수를 선언하여 해당 클래스를 상속받는 클래스에서 편리하게 호출할 수 있는 함수를 구현해 봅니다.
이번 포스팅에서는 캐릭터의 죽음을 구현해봅니다.

유니티3D 에디터에서

스크립트 생성

먼저 CharStats.cs 스크립트를 다음과 같이 수정합니다.

```ruby using System.Collections; using System.Collections.Generic; using UnityEngine;

캐릭터 구성하기 - 캐릭터 스탯 관리하기
캐릭터 구성하기 - 캐릭터 스탯 관리하기

선수포스팅 :: Pre-requisite

네비게이션 메시(/br)

캐릭터 스텟 관리 :: Character Stats

게임에는 수많은 캐릭터들이 존재하고 각 캐릭터들은 고유의 스텟을 가지고 있습니다. 흔하게는 공격력, 방어력, 체력 등이 있을 수 있을 것이고 더 나아가서는 리스폰 시간이나 이동 속도 등 여러가지 항목들을 가지고 있을 수 있습니다.

이번시간에는 Stat 클래스를 직접 작성하여 캐릭터의 공격 및 죽음을 구현해 보도록 하겠습니다.

유니티3D 에디터에서

스크립트 생성

이번 포스팅에서는 총 4개의 스크립트를 작성해야 합니다.

먼저 Stat.cs 스크립트를 생성하고 다음과 같이 작성합니다.

Latest Posts

Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기
Unity3D DOTS 개요 - DOTS 알아보기 2. World에 Entity 만들기

Unity3D DOTS 개요 - DOTS 알아보기 1. ECS
Unity3D DOTS 개요 - DOTS 알아보기 1. ECS

DOTS 개요

DOTS는 Data Oriented Tech Stack의 약자로서 기본 상태에서 최적의 성능을 확보할 수 있는 전혀 다른 방식의 코드 작성 방법입니다. DOTS 방식으로 코드를 짠다면 멀티스레드 성능을 통해 더 많은 개체, 더 많은 이펙트, 더 나은 비주얼을 가진 복잡한 콘텐츠를 만들 수 있습니다.
DOTS는 Entity Component System, C# Job System, Burst Compiler 세 가지 요소로 이루어져 있습니다. 본 포스팅에서는 ECS에 대해서 알아봅니다.

유니티3D 설치
유니티3D 설치

유니티3D를 설치해봅니다.