올해의 마지막 유니티 세일을 만나 볼 준비가 되셨나요? 유니티 New Year 세일은 2023년 12월 18일 오전 8시(태평양 시간)에 시작해 2024년 1월 10일 오전 7시 59분 59초(태평양 시간)에 종료됩니다. 에셋 스토어에서 2,000종 이상의 에셋이 최대 50% 할인된 가격에 판매될 예정이라고 합니다! 에셋스토어 여러분의 작업에 필요한 베스트 에셋을 찾아보세요. 유니티 에셋스토어가 2D, 3D 모델, SDK, 템플릿, 툴 등 여러분의 콘텐츠 제작에 날개를 달아줄 다양한 에셋을 제공합니다. assetstore.unity.com New Year 쿠폰 이 쿠폰을 사용하면 미화 100달러 이상 주문 시 세일 에셋의 판매가에서 10% 추가 할인을 받을 수 있습니다. 다른 쿠폰과 중복 사용할 수 없으..
이번 포스팅은 윈도우 기준으로 Rider에서 사용할 수 있는 단축키들에 대해 소개드리고자 합니다. 제가 가장 많이 쓰는 단축키 4개를 가져와봤으며, 이 외에도 엄청 많은 단축키들이 존재하므로 한 번 알아보시는 것을 추천드립니다! Show Intention Actions 단축키 Show Intention Actions 명령은 수행할 수 있는 상황에 맞는 작업 목록이 표시되도록 해줍니다. 위 상황은 'ITTATState' 인터페이스에서 상속된 'TTATJumpState' 클래스가 필요한 인터페이스 메서드를 모두 구현하지 않아 오류가 발생하고 있습니다. Show Intention Actions 명령을 사용하고자'Alt' + 'Enter'를 눌러주어 놓치고 있는 인터페이스 메서드가 무엇인지 보여주는 'Imple..
이 글은 빌드를 하고 apk파일을 VR에 업로드하는데 문제가 생겼던 팀원을 도와주면서 어떻게 해결했는지 공유하기 위해 쓰는 글입니다. 아래 에러는 빌드 후 업로드할 때 apk파일 용량이 2GB가 넘으면 발생하거나, 인증 키가 없어서 발생하는 에러라고 합니다. 팀원의 프로젝트 경우 인증키는 이미 존재하기에 전자에 대한 해결책으로 최적화(빌드 크기 줄이기)와 관련해서 포스팅을 해보고자 합니다. 이 방법이 100% 해결법은 아닐 수 있겠지만 해결방법 중 하나가 될 수 있기에 참고하시면 좋을 것 같습니다. A task failed. Check the tasks screen for more info. bulid.apk: /data/local/tmp/_stream.apk could not be installed [..
개발을 하다보면 런타임에 돌아가지 않고 에디터 상에서 특정 함수가 실행되게 하고 싶을 때가 종종 생깁니다. 예를 들어, 10x10 블록을 배치한다거나 랜덤한 미로를 만든다 등의 경우가 있습니다. 저의 경우, 디버그를 할 때 사용하기 위한 Debug Color Preset을 적용해야 하기 위해 인스펙터창에서 특정 함수가 실행되게 해주어야 합니다. ContextMenu [ContextMenu]는 Unity의 C# 스크립트에서 사용되는 특성(Attribute) 중 하나로, 해당 스크립트의 메서드를 인스펙터에서 실행할 수 있도록 하는 특성입니다. [ContextMenu] 특성을 메서드 위에 추가해준 다음 "이름"을 설정해주시면, 해당 메서드가 인스펙터에서 지정한 "이름"으로 나타납니다. 인스펙터에서 [Conte..
유니티 3D 개발을 하면서 가장 애용하고 유용하게 사용중인 에셋을 소개드리고자 합니다. 지극히 주관적인 생각이며 저의 개발 스타일에 맞춰 추천하는 것임을 강조합니다. Odin Inspector 유니티 Odin Inspector Odin Inspector란? 오딘 인스펙터는 커스텀 에디터 코드를 한 줄도 작성하지 않고도 강력하고 사용자 친화적인 커스터마이징 에디터의 모든 워크플로 이점을 누릴 수 있는 Unity용 플러그인입니다. wlsdn629.tistory.com 프로젝트를 시작하면 아무 생각 없이 패키지 매니지먼트에 들어간 후 오딘 인스펙터를 설치합니다. 오딘 인스펙터를 알고 난 후와 전의 개발속도 차이는 실감이 날 정도로 제 값을 똑똑히 해주는 에셋입니다. 마치, GPT가 생겨난 후와 전과 같은 느낌..
해당 기능은 Meta에서 개발한 내용임을 알리고 시작합니다. AutoSet 활용하기: 컴포넌트 할당 간소화 이 글을 보신 다음부터는 두번다시 컴포넌트를 수동으로 할당하지 마세요!! AutoSet을 활용하여 개발 워크플로를 더욱 원활하게 만드는 방법에 대해 소개드리겠습니다! AutoSet이란? AutoSet은 동적 Attribute 유틸리티입니다. 필드에 AutoSet 어트리뷰트를 태그하면 필요한 컴포넌트를 게임오브젝트로부터 자동으로 가져와 할당하도록 지시할 수 있습니다. 컴포넌트는 게임 오브젝트, 게임오브젝트의 자식 또는 부모에서 가져올 수 있습니다. AutoSet 주요 이점 자동 할당: 인스펙터에서 수동으로 할당하는 지루한 반복 과정을 생략할 수 있습니다. 정밀성: 수동으로 컴포넌트 할당 시 발생할 수..
유니티 에셋스토어에는 다양한 할인 이벤트를 진행한다는 것을 알고 계신가요? 2023.08.07 기준으로 Dev Days of Summer Sale과 Quick Start Bundle, New release discounts 할인 이벤트를 진행하고 있습니다! 할인 이벤트 중에서 상시 진행하는 Publisher of the Week라는 할인 이벤트에 대해 소개 드리고자 합니다! Publisher of the Week란? 매주 금요일 마다 유니티 에셋스토어에서 특정 퍼블리셔의 제품을 홍보해주기 위해 퍼블리셔의 제품 중 하나를 무료로 배포하는 시스템인 것 같습니다. 위 Magic swords VFX라는 제품을 무료로 배포함으로써 해당 퍼블러셔의 제품들은 아래에 홍보받게 됩니다. Publisher of the W..
GitHub - NK-Studio/Unity-Debug-Optimization Contribute to NK-Studio/Unity-Debug-Optimization development by creating an account on GitHub. github.com 유튜버 "NK Studio의 유니티 스페셜 테크닉" 님이 만드신 자료입니다! Debug을 최적화 해야하는 이유 유니티 개발을 하다보면 Debug을 이용해 버그같은거나 제대로 작동하는지 파악하기 위해 사용되는 경우가 많습니다. 하지만, 이런 Debug가 에디터에서 플레이할 때만 돌아가는 것이 아니라 빌드를 하고 난 후에도 지속적으로 Debug가 보이지 않는 곳에서 생성된다는 것이 문제입니다.(불필요한 리소스를 잡아먹게 됨) 따라서, 에디터 모..
개발을 하다 보면 Project 폴더 안에 존재하는 Scenes을 찾아서 일일이 클릭하여 해당 씬으로 가야 하는 번거로움 및 불편함이 존재합니다. 불편함을 줄이고자 Rainbow Folders 에셋을 구매해봤으나 해당 Scene을 찾고 여는데에 있던 불편함은 그대로였습니다. 물론, Prefab이나 Scripts폴더 등 각 폴더들을 구분되게 해준다는 점에서 훌륭한 에셋입니다! Unity Asset - Rainbow Folders 2 후기가격 및 후기 가격은 20달러로 약 3만원 정도 합니다!(26,390원) 별점과 관심도는 좋은 편에 속합니다! Asset Setting 에셋을 임포트 해봅니다! Project Setting 탭에 들어가보시면 Rainbow Folders 탭이 생긴 것wlsdn629.tist..
Recorder 임포트하기 Package Manager를 열어 Recorder를 찾아준 후 Install를 눌러 설치해줍니다. 설치가 끝나면 상단 [Window] - [General] 탭으로 들어가보면 Recorder가 생긴 것을 확인할 수 있습니다. 촬영하기 Recorder Window를 클릭하면 위와 같은 Recorder 윈도우 창이 뜹니다. [+ Add Recorder]을 클릭하면 원하는 형식의 촬영방식을 선택할 수 있습니다. 촬영 방식은 Animation Clip, Movie, Image Sequence, Audio가 있습니다. Movie를 선택해주면 위 화면과 같이 옵션을 선택할 수 있는 부분들이 생겨납니다. 설정관련 설명은 생략하겠습니다. 결과 영상 촬영 결과물
싱글톤 패턴이란? Unity 싱글톤 패턴은 특정 클래스가 게임 수명 기간 동안 하나의 인스턴스만 갖도록 하기 위해 Unity 게임 개발에서 일반적으로 사용되는 디자인 패턴입니다. 이 패턴은 게임 내에서 전역적으로 액세스할 수 있어야 하는 단일 리소스나 시스템(예: 게임 매니저, 오디오 매니저 또는 게임 설정 매니저)을 관리해야 할 때 유용합니다. public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton Instance { get { if (instance == null) { instance = new Singleton(); } return instance; } } } S..
코드를 짜다보면 인스펙터창에 설정하는 경우가 많은데 그렇게 되면 인스펙터창이 지저분해지기 일상입니다. 이번 시간에는 Inspector를 커스터마이징할 수 있는 Attribute에 대한 Tip을 소개하고자 합니다. [Space(int)] int 값만큼 위 아래 간격을 벌려줍니다. [Header("String")] String으로 머리말을 달아줍니다. [SerializeField] public으로 쓰면 안되는 요소들을 인스펙터창에 보여주기 위해 사용합니다. [Tooltip("String")] 요소에 마우스를 올려두면 말풍선이 나오고 String부분에 적은 내용이 나오게 됩니다. [RequireComponent(typeof())] 특정 컴포넌트를 자동으로 부착해줘서 오류를 사전에 방지해줍니다. 그 외 AddC..
포물선 방정식 포물선 방정식은 물체가 중력의 영향을 받아 수직 방향으로 자유낙하하면서 수평 방향으로 일정한 속도로 직진하는 운동을 모델링하는 데 사용되는 수학적인 표현입니다. 이 방정식은 2차원 운동의 궤도를 설명하는 데 주로 사용됩니다. 포물선 방정식의 일반적인 형태는 다음과 같습니다. y는 물체의 수직 위치를 나타냅니다. x는 물체의 수평 위치를 나타냅니다. a, b, c는 상수 계수입니다. 포물선 운동에서 중요한 것은 중력의 영향으로 수직 방향으로 가속하고, 수평 방향으로 일정한 속도로 움직인다는 것입니다. 따라서 포물선 방정식을 사용하면 어떤 시간에 물체의 위치를 예측할 수 있습니다. 일반적으로 포물선 방정식은 다음과 같이 표현됩니다. g는 중력 가속도를 나타냅니다 (주로 9.8 m/s^2로 가정..
OVRInput.GetLocalController OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerVelocity(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerAngularVelocity(OVRInput.Controller.RTouch); OVRInput에는 Position, Rotation, Velocity 등 다양한 값을 받아올 수 방법이 있습니다.