- Today
- Total
목록분류 전체보기 (360)
프로그래밍 농장
스타터 에셋에서 사용하는 Input Action Asset과 기존 입력 방식인 Input의 차이점에 대하여 정리하고자 한다. button, axis 등 특정 하드웨어의 게임내 기능에 직접 매핑하는 형식이다. -> 이는 장치에 의존되고 나중에 재구성이 어렵다는 단점이 존재한다. 또한 다른 유형의 입력 컨트롤을 처리하는 경우 Update()에서의 if문에 계속 추가해주어야한다. 그리고 플레이어가 컨트롤을 자신의 스타일에 맞도록 다시 매핑하게 하기 어렵다는 단점이 있다. 이에 반해, 새로운 입력 시스템인 Input Action을 사용하게 되면, 특정 하드웨어(button,axis등)을 참조하는 대신 작업에 해당하는 이벤트에 의해 트리거된다. [Unity] Input Action을 사용해야 하는 이유 Unity..
유니티에서는 스크립트를 사용하지 않고도 기능 구현이 가능한 비주얼스크립팅이 존재한다. 21년버전부터는 유니티가 해당 기능을 제공하는 Bolt사를 인수하여 언리얼엔진의 BluePrint와 같이 제공하며 이전버전에서는 외장 설치를 통해 사용할수있다. 아래와 같이 Delog.log에 오브젝트의 Transform을 연결해주면 아래와 같이 현재위치가 실시간으로 디버그 및 Sript Graph를 통해 확인할수있다. 비주얼 스크립팅 구현을 위해서는 기본적으로 New -> Visual Script 혹은 오브젝트 클릭후 컴포넌트에서 add component -> script machine -> new 응 통하여 아래와 같이 스크립팅 창을 생성하여 구현할수 있다. 아래와 같이 기존 스크립트에서 가져와 사용하던 다양한 오브..
이번주는 저번주에 이어 최종적으로 MagicaVoxel 오브젝트들을 이용한 프로젝트를 완성하였다. 2주가까이 다양한 Voxel 오브젝트들을 만들고 배우면서 쌓은 것들을 기반으로하여 프로젝트를 완성할수있어서 뿌듯했다 ! 초반 게임 시작 및 로그인 Scene은 아래와 같으며, Resources.Load() 함수를 통하여, 프로젝트 내 폴더의 다양한 파일들을 불러와, 배경화면을 전환시켜주도록 구현하였다. using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class SpriteChange : MonoBehaviour { Image Wallpaper; int cnt = 0..
유니티 개발 중 아래와 같은 전처리기 지시어와 해당 내용들에 대해 알아보고자 한다. 전처리는 컴파일 전에 소스 파일을 정리하여, 정의 된 부분만 컴파일을 한다는 개념이다. 모든 전처리기는 #지시어로 시작한다. 그렇다면 아래 코드의 경우에는 'ENABLE_INPUT_SYSTEM' ==1 && STARTERS_ASSETS_PACKAGES_CHECKED ==1 즉, ENABLE_INPUT_SYSTEM이 참이며 STARTERS_ASSETS_PACKAGES_CHECKED 가 참일경우에,PlayerInput 컴포넌트가 필수적으로 요구된다는 뜻이다. 관련 세부사항은 아래 Unity Docs를 통하여 확인할수있다. Installation guide | Input System | 1.0.2 Installation gui..
MagicaVoxel에서 직접 찍어서 가져온 오브젝트들을 활용하여 Voxel형 미니게임을 구현하였다. 아래와 같이 LoginScene에서 기본적인 회원정보를 입력하게된다면 캐릭터 선택화면이 나온다. 이후 닉네임까지 지어주었다면 아래와 같이 CityScene으로 전환되어 플레이 전 활용할수있는 다양한 아이템들을 습득순서에 따라 인벤토리에 저장, 및 사용해볼수있다. 이후 첫번째 맵에 들어가게되면 아래와 같이 Enemy들이 UnityAI를 통해 플레이어의 위치를 파악하여 추적한다. 이때 습득한 돈 아이템을 뿌리게 되면 돈을 우선적으로 추적하며, 돈을 추적했다면 다시 플레이어를 추적하게 된다. 또한 가면아이템은 소모성이아닌 활성아이템으로, 장착시 동료로 인식하여 추적을 하지않는다. 다음맵으로 넘어가게되면 다리를..
Animator를 사용하여 플레이어 Move를 구현할때, Inspector에 아래와 같이 Apply Root Motion 이라는 옵션이 있다. 해당옵션인 루트모션이 활성화되어 있다면, 이는 게임 오브젝트의 위치와 회전을 애니메이션이 제어하도록 허용한다는 뜻이다. 앞으로 움직이는 애니메이션이 있다고 할때, 루트 모션을 해제하게 되면 해당 오브젝트의 움직임을 정확히 반영하지 않는 현상이 발생할수있다. 본인의 경우 움직일 오브젝트가 이동 및 애니메이션 기능은 받아들이지만, 콜라이더, 카메라 등과 점점 멀어지는 현상이 발생하였었다. 캐릭터를 교체후, 교체된 캐릭터의 위 옵션이 꺼져있었기에 이와 같은 문제가 발생했던것이다.