Beatchoi's Blog

List of Postings

유니티 자료 구조 - 딕셔너리<Dictionary>
유니티 자료 구조 - 딕셔너리

딕셔너리 :: Dictionary

배열이나 리스트 같은 경우에는 원하는 값에 접근할 때 index번호로 접근하게 되며 이 index는 정수로 구성되어 있습니다.
Dictionary의 경우 배열이나 리스트의 index를 사용자가 지정할 수 있습니다. 이를 dictionary에서는 key라고 합니다.
쉽게말해 내가 지정한 값에 이름표를 붙인다고 생각하면 편합니다.
다음 예제는 SwordDamage라는 dictionary를 생성하고 SwordDamage안에 각각의 검의 종류를 키로 지정하고 해당 검의 종류에 따라 다른 데미지를 줘보도록 하겠습니다.

유니티3D 에디터에서

스크립트 생성

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

이벤트 호출을 위한 게터, 세터, 프로퍼티- 기본구조 알기
이벤트 호출을 위한 게터, 세터, 프로퍼티- 기본구조 알기

이벤트 :: Event

콘텐츠를 개발하다 보면 언제 일어날지 모르는 불규칙한 이벤트를 구현해야 할 경우가 생깁니다.
예를 들면 캐릭터의 체력이 50% 미만이 되면 체력 회복을 한다던지, 또는 충돌 횟수가 3회 이상이 되면 파괴가 된다던지 말이죠.
언제 일어날지 모르는 이 이벤트들을 위해 Update문이나 Coroutine들을 기약없이 돌릴수는 없는 노릇입니다.
이번시간에는 해당 수치들에 관련된 이벤트들을 호출할수 있는 문법을 배워보도록 하겠습니다.

유니티3D 에디터에서

스크립트 생성

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

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

큐 :: 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;

Latest Posts

LightshipAR SDK 활용하기 - Maps SDK의 활용
LightshipAR SDK 활용하기 - Maps SDK의 활용

ARDK Maps SDK

Lightship의 geofencing 기능을 구현할 수 있는 Maps SDK 활용법을 알아봅니다.

콘텐츠 개발

프로젝트 세팅

본 포스팅은 ARDK 3.9 버전, Maps SDK 0.4 버전을 기준으로 작성합니다. 이전 포스팅을 참조하여 SDK를 임포트 합니다.

Top Down Map

  1. 네이버 지도같은 일반적인 탑-다운 맵을 구현해 봅니다.

Unity3D에서의 UI - Rect Transform
Unity3D에서의 UI - Rect Transform

Unity UI RectTransform :: 개요

UI 객체들의 위치, 크기, 기준점 등등을 담당하는 Rect Transform에 대하여 알아봅니다.

Unity3D에서의 UI - UI의 구성
Unity3D에서의 UI - UI의 구성

Unity UI :: 개요

Unity UI는 게임 및 애플리케이션용 사용자 인터페이스를 개발하는 데 쓰이는 간단한 UI 툴킷입니다. Unity UI는 게임 오브젝트 기반 UI 시스템으로, 컴포넌트와 게임 뷰를 사용하여 사용자 인터페이스를 배열하고 위치와 스타일을 지정합니다. Unity UI는 Unity 에디터 내 사용자 인터페이스에 대해 사용할 수 없습니다.https://docs.unity3d.com/kr/2019.1/Manual/UIToolkits.html