반응형

Unity 30

Custom Unity Package를 UPM으로 배포하는 방법

UPM (Unity Package Manager) 란? UPM은 프로젝트에 필요한 기능등을 모듈단위로 분리해 기능을 제작하고 Package Manager를 통해 편리하게 다운로드해 사용할 수 있는 Unity 기능. UPM을 사용하지 않는다면 '.unityproject'를 받아 import하여 내 로컬 프로젝트의 Assets 폴더 아래에 들어가게 되어 외부 패키지를 삭제해야 하거나 할때면 일일이 찾아서 삭제해야 하는 불편함이 존재했음 그러나 UPM을 사용하면 패키지들이 패키지 단위로 묶여있고 독립적으로 관리되어 필요할 때 패키지를 업데이트하고 삭제할 수 있어 프로젝트를 깔끔하게 유지할 수 있다.Custom Package를 UPM으로 만드는 방법 처음엔 Unity Project에서 내가 만들고자 하는 Uni..

Unity 2024.07.16

[Unity] PostProcessing

PostProcessing이란?포스트 프로세싱은 기존에 렌더링된 Scene에 렌더링 효과를 더하는 작업으로 PostProcessing의 효과는 일반적으로 Scene 뷰에 따라 달라지거나, 최종 렌더링 결과물을 생성하기 전에 렌더링 되는 Scene위에 겹쳐서 표시됨 기존 컨텐츠를 수정할 필요없이 시각적인 효과를 즉시 구현하고 Scene의 품질을 개선할 수 있다는 장점이 있음 이 포스팅은 Unity의 Universal Render Pipeline(URP)를 사용하는 경우를 기준으로 설명하도록 하겠습니다. URP를 사용할 경우 따로 패키지를 설치할 필요없이 PostProcessing을 사용할 수 있음 URP를 사용해 포스트 프로세싱을 하는 방법1. GameObject를 하나 만들고 Volume 컴포넌트를 추가..

Unity 2024.07.11

[Unity] Animator Component의 Root Motion 이란?

Root Motion이란?유니티에서 Animator를 사용할때 'Apply Root Motion' 이라는 값이 있다.이 Root Motion이란 게임오브젝트의 위치와 회전을 Animation이 제어할 수 있도록 허용하는 것이다.예를 들어 Root Motion이 적용된 걷는 애니메이션은 캐릭터가 걷는 것에 따라 위치 값도 변하게 된다.(Animation이 게임오브젝트의 위치와 회전을 제어하기 때문) 반대로 Root Motion이 적용되지 않은 걷는 애니메이션은 캐릭터가 제자리 걸음을 하게 될것이다. Root Motion이 적용된 Animation의 경우 Script 코드를 작성하여 움직임을 구현하는거 보다 더 자연스럽게 움직임을 구현할 것이다(전문 모델러 혹은 디자이너 분이 만들어 주실테니...) 시네마틱..

Unity 2024.07.10

Unity 3D Object Drag & Drop

Unity에서 3D 게임을 만들다 보면 3D GameObject를 컴퓨터의 경우 마우스, 모바일의 경우 손가락으로 자유롭게 Drag & Drop 하여 원하는 위치에 놓는 기능이 필요할때가 있다 위에서 서술한 기능을 나는 아래와 같이 구현하였다 https://www.youtube.com/shorts/H-rxX2ozjUE3D Object Drag & Drop  우선 클릭 또는 터치 했을때 내가 Drag & Drop 하고자 하는 GameObject인지 구분부터 해야한다.private GameObject OnClickObjUsingTag(string tag){ Vector3 touchPos = new Vector3(0, 0, 0);#if UNITY_EDITOR touchPos = Input.mouse..

Unity 2024.06.04

Unity Design Pattern - Object Pool

Object Pool 방식의 디자인 패턴은 비단 Unity에서만 사용하는 패턴은 아니지만 Unity에서도 유용하게 쓸 수 있는 디자인 패턴이다 Object Pooling은 많은 GameObject들을 생성하고 파괴하는데 CPU를 최적화 시키는 방법으로 GameObject를 다 사용하고 난 후 GameObject를 파괴시키지 않고 비활성화 시킨 후 pool로 되돌리는 방식이다. 이는 GC(Garbage Collector)로 인한 버벅거리는 현상을 줄여주는 효과가 있다. 1. 간단한 Object Pooling 예시 [ObjectPool.cs]public class ObjectPool : MonoBehaviour{ [SerializeField] private uint initPoolSize; [Se..

Unity 2024.06.03

유니티 3D Model 파괴 효과 만들기

Unity로 건물이나 3D Model이 부서져 무너지는 효과를 만드는 방법 Probuilder Package를 이용해 건물이 부서졌을때 조각나는 부위의 GameObject들을 만들고 건물이 부서지면 미리 조각해놓은 오브젝트로 대체해버리는 방식 Probuilder Package로 건물을 조각낼때 조각낼 부위를 Cube GameObject를 사용해 범위를 지정해줄수 있음 건물이 무너지며 폭발하는 효과 - Probuilder 설치 Unity Package Manager에 가서 Probuilder를 설치, 필자의 경우 Probuilder 5.0.7 version을 사용 부서질 모델 오브젝트에 Probuilder MeshFilter Component를 추가할 예정 - Probuilder MeshFilter 추가 ..

Unity 2024.02.26

Unity Android Plugin 만들기

Unity에서 기본으로 지원해주지 않는 기능을 지원하기 위해서나 Native에 내가 구현해놓은 기능을 Unity에 사용하기 위해선 Plugin을 만들어야 함. 필자도 Native에 만들어놓은 기능을 Unity에서 사용하기 위해 Plugin 제작을 하는데 매번 만들때마다 어떻게 만들었는지 까먹어 내가 필요할 때 참고 하기 위해 블로그에 정리함. 개발 환경 PC: Mac Android Studio: Hedgehog | 2023.1.1 Unity: 2021.3.11f1 - Android Project 생성 먼저 Android Project를 생성해 준다. 본인이 만들고자 하는 Plugin의 성격에 따라 원하는 Template를 설정한다. 필자의 경우 "No Activity"를 많이 사용. - Android M..

Unity 2024.01.28

[Unity] Animator Animation 재시작 방법

Unity에서 Animation을 다시 시작하고 싶은 경우가 있다. 그냥 loop 속성을 주면 다시 시작은 할 수 있지만 문제는 특정한 경우에 다시 시작하고 싶은 경우이다. loop 처럼 계속 다시 시작하는 것이 아닌 특정 버튼을 누른다던가 하는 경우. 제일 쉬운 방법은 Animator Component가 포함된 Object을 비활성화 했다가 활성화 하면 되게 해결되는 경우가 많다. 하지만 문제는 Animator Component가 포함된 Object를 비활성화 하면 안되는 경우!!!, 이런 경우 Animator Component를 비활성화하고 활성화 하면 될 줄 알았지만 되지 않았다. ㅠㅠㅠㅠ 그냥 Animator Component를 비활성화 -> 활성화만 하는 것이 아닌 'Rebind()'라고 하는 ..

Unity 2021.10.29

[Unity] Touch for Mobile - Part1

Unity 개발 타겟을 모바일로 했을 때는 PC로 개발했을때와 달리 키보드 입력등을 받는 구조가 아니기에 모바일용 컨트롤을 위한 개발을 따로 해야만 한다. 관련해서 도움이 될만한 내용을 정리해 보도록 하겠습니다. 모바일은 키보드 입력을 Default로 받는 구조가 아니기에 화면 터치를 이용해야 합니다. 화면 터치의 단계는 총 5개의 단계가 있습니다. 1. Began: 손가락으로 처음 화면을 터치 했을때 나타나는 단계 2. Moved: 손가락이 화면과의 접촉을 끊지 않고 위치를 이동했을때의 단계 3. Stationary: 손가락이 화면과의 접촉을 끊지 않고 아무런 이동없이 한곳에 머무를때의 단계 4. Ended: 손가락이 화면을 더 이상 터치하지 않을 때 5. Cancelled: 손가락의 화면 터치 tra..

Unity 2021.09.21