전체 글 50

[Unity] 유니티에서 코루틴(Coroutine) 사용하기

코루틴이란?코루틴은 IEnumerator를 반환하는 함수로, 비동기적으로 작업을 처리하거나 지연된 작업을 수행할 수 있습니다. yield를 사용하여 특정 시간 동안 대기하거나, 여러 프레임에 걸쳐 작업을 나누어 처리할 수 있습니다. 이는 게임에서 타이밍 제어나 비동기적 로딩, 애니메이션 제어 등 다양한 용도로 사용됩니다.  기본 사용법코루틴은 다음과 같이 정의하고 호출할 수 있습니다:using System.Collections;using UnityEngine;public class Greeting : MonoBehaviour{ void Start() { StartCoroutine(GreetEverySecond()); } IEnumerator GreetEverySecond..

Unity/정보 2024.09.08

[Unity] 휴머노이드 애니메이션을 활용한 상체와 하체의 방향 조정 방법

Unity에서 캐릭터 애니메이션을 구현할 때, 상체와 하체를 각각 다른 방향으로 향하게 하는 것은 다양한 게임에서 중요한 요소입니다. 예를 들어, FPS 게임에서 플레이어가 상체는 오른쪽을 조준하면서 하체는 앞으로 뛰는 상황을 구현하고 싶다면, 상체와 하체의 애니메이션 방향을 별도로 조정해야 합니다. 이번 글에서는 이러한 기능을 구현하는 여러 방법 중 하나를 소개하겠습니다. 위 사진처럼 캐릭터의 상체와 하체 등 부위별로 서로 다른 방향을 주는 것이 최종 목표입니다. 부위별로 다른 애니메이션을 재생하는 방법은 이미 널리 알려져 있으므로, 이번에는 다루지 않겠습니다.​작업할 캐릭터 모델 준비캐릭터와 애니메이션은 무료로 제공되는 사이트인 Mixamo에서 가져옵시다.​www.mixamo.com Mixamo ww..

Unity/정보 2024.09.04

[Unity] AR 튜토리얼

Unity AR (튜토리얼) 소개증강 현실(AR, Augmented Reality)은 현실 공간에 가상의 이미지를 겹쳐 보여주는 기술입니다. 스마트폰이나 태블릿 등을 통해 현실에 3D 오브젝트, 텍스트, 이미지 등을 추가할 수 있습니다.AR 기술은 게임, 교육 등 다양한 분야에서 활용되고 있으며, Unity는 AR 개발을 간편하게 할 수 있는 기능을 제공합니다. 이번에는 Unity를 사용하여 간단한 AR 앱을 만들 예정입니다. 목표는 사용자가 화면을 터치할 때 화면 중앙에 오브젝트를 생성하는 것입니다. 사용법 안내1. AR Foundation 패키지 설치 Package Manager에서 AR Foundation을 검색하여 설치합니다.사용하는 기기가 안드로이드인 경우 Google ARCore XR Plug..

Unity/정보 2024.08.17

[Unity] URP 데칼 프로젝터(Decal projector) 사용하기

데칼 프로젝터(Decal projector) 소개 데칼 프로젝터는 오브젝트 표면에 텍스처나 그래픽을 투사하여 시각적인 효과를 추가하는 도구입니다. 벽에 낙서를 그리거나 총알 자국 등을 쉽게 적용할 수 있으며, 게임 환경의 디테일과 몰입감을 높여줍니다.위 사진들은 데칼의 예시로 볼 수 있습니다. 사용법 안내1. 데칼 기능 활성화하기현재 사용하고 있는 URP Renderer를 보면 데칼을 추가할 수 있습니다.URP-HighFidelity를 사용하고 있으므로, URP-HighFidelity-Renderer를 클릭하여 인스펙터에서 Add Renderer Feature를 눌러 Decal을 추가합니다. 2. 데칼 프로젝터 배치 데칼에 사용할 Material을 새로 만듭니다. Shader Graphs/Decal로 설..

Unity/정보 2024.07.09

[Unity] 유니티 클라우드 - 충돌 보고서(Cloud Diagnostics)

Unity Cloud - 충돌 보고서(Cloud Diagnostics) 소개 위 사진처럼 유니티 빌드 파일을 실행 도중 충돌이 나서 강제종료가 되는 경우가 종종 있다.이를 해결하기 위해 충돌 보고서를 이용하여 문제가 되는 부분을 수정해야한다.충돌 보고서 기능을 제공하는 여러가지가 있지만 유니티 클라우드에서도 무료로 제공하기에 가볍게 살펴보겠다.  사용법 안내1. 프로젝트를 클라우드와 연결우선 사용하고자하는 유니티 프로젝트를 클라우드와 연결시켜주자유니티 허브에서 해당 프로젝트의 NOT CONNECTED에 마우스를 가져다대면 메세지 가장아래에 클라우드와 연결할 수 있는 버튼이 있다. 다른 방법으론 가장 오른쪽에 점3개 메뉴를 열어서 클라우드와 연결시킬수도 있다. 2. Cloud Diagnostics 설치 및..

[Unity] 에셋 번들(AssetBundles) 개념 맛 보기

에셋 번들 소개에셋번들이란 asset과 bundle의 합성어이다.  asset은 유니티 프로젝트에 Assets 폴더가 가장 최상위 폴더인걸 확인할 수 있는데이 폴더의 하위에 존재하는 것들이 전부 에셋이다.bundle은 영어뜻으로 묶음 정도로 해석 된다.즉 Asset들의 묶음이 에셋번들이다. 에셋번들은 개발자가 의도한대로 에셋들을 그룹화 시킬 수 있다.  에셋번들을 생성한뒤 에셋번들끼리만 빌드한 뒤 전체 프로젝트 빌드를 하게되면 이 에셋번들을 제외하고 빌드하기에 빌드 용량은 줄어든다.  이렇게 생성된 전체 프로젝트 빌드파일에 에셋번들 빌드로 생성된 파일을 넣어줘야 제대로 된 실행이 가능하다. 예시를 보면 대부분의 스마트폰 게임이 이런 방식을 채용 중이다. 플레이스토어에서 다운받는 어플 용량이 적어 금방 설..

Unity/정보 2024.04.05

[Unity] Unity Muse 살펴보기

Unity Muse (Unity AI) 소개Unity Muse는 Unity에서 지원하는 AI입니다. Muse는 여러 가지 기능을 가지고 있는데, 현재 바로 사용가능한 기능으론  Muse Texture와 Muse Sprite가 있고 이 기능들은 Unity Editor 확장 프로그램으로 프롬프트를 입력하여 원하는 결과를 출력합니다.자세한 정보나 Muse의 기능에 대한 더 깊은 이해를 위해서는 공식 Unity 문서와 블로그 게시물을 확인하는 것이 좋습니다 https://unity.com/kr/products/muse Unity MuseUnity Muse를 사용하면 Muse Chat, Muse Texture, Muse Sprite 등 AI 기반 기능으로 실시간 3D 애플리케이션 및 경험 창작을 가속화할 수 있습..

Unity/정보 2024.03.17

[Unity] 2D 랜덤 맵 생성(Celluar Automata)

Celluar Automata 소개 셀룰러 오토마타를 사용한 맵 생성 과정은 다음과 같습니다. 1. 초기 상태 설정: 특정 비율(ex: 50%)로 맵을 벽으로 채웁니다. 2. 셀룰러 오토마타 규칙 적용: 각 타일을 선택하여 주변 8칸 중 벽이 4칸을 초과할 경우 해당 타일을 벽으로, 4칸 미만일 경우 길로 변환합니다. 3. 반복적인 업데이트: 2번의 규칙을 정해진 횟수(ex: 5회)만큼 반복하여 맵을 계속 업데이트합니다. 이러한 과정을 통해 초기에 무작위로 채워진 맵이 셀룰러 오토마타의 규칙에 따라 반복적으로 변화하면서 벽과 길의 패턴이 형성됩니다. 주요 스크립트 using System.Collections; using System.Collections.Generic; using UnityEngine; ..

Unity/정보 2024.01.20

[Unity] New Input System

New Input System 소개 현재 유니티는 개발된지 오래된 엔진으로 아래처럼 기존의 입력 시스템도 오래됐다. 이 입력 시스템은 인풋시스템이 명확하지가 않아 vr, 콘솔, 모바일, pc 등등 여러 디바이스별로 일일이 키 매핑을 직접 찾아 입력해줘야한다. 그리고 코드 작성시 input.if (Input.GetMouseButtonDown(0)) else if (Input.GetKey(KeyCode.W)) 이런식으로 입력되어 보기에도 안좋아지는 단점을 가지고 있다. 이러한 것들을 해결하기 위해 유니티에서 새로운 input system을 만들어 소개한다. 사용 방법 새로운 input system을 사용하기 위해선 Package Manager에서 따로 설치해줘야한다. 아래 사진에서 알 수 있듯이 Input ..

Unity/정보 2024.01.13

[Unity] 오브젝트 풀링 (Object pooling)

오브젝트 풀링 여러가지 게임 중에 같은 오브젝트들이 반복해서 나오는 상황이 발생하는 게임이 있다. 예를 들어 아래 사진처럼 뱀서라이크 게임에서 같은 몬스터가 반복적으로 나올때라던지 오브젝트 풀링을 모른다면 위 상황을 연출할때 박쥐를 생성할땐 Instantiate를 사용하고 삭제할 때는 Destroy를 사용할 것이다. 하지만 Instantiate와 Destroy를 사용하면 안좋다는것은 조금만 구글링해도 금방 알 수 있듯이 이를 해결하기 위해 보통 오브젝트 풀링을 사용한다. 오브젝트 풀링이란 게임에서 자주 사용되는 객체를 미리 생성하여 필요할 때 활성화/비활성화를 통해 재활용하여 성능을 최적화하는 기법이다. 원리는 다음과 같다. 1. 풀링 생성: 게임이 시작될 때 미리 정해진 개수의 오브젝트를 생성하여 풀(..

Unity/정보 2024.01.06