유니티 싱글톤 베이스
·
Unity
유니티에서 프로젝트를 진행할 때, 싱글톤 패턴을 자주 사용해야할 것 같을 때, 제네릭 클래스로 싱클톤베이스를 작성 후 만들어두면 같은 코드의 반복을 최소화 할 수 있습니다. 위처럼 싱글톤 베이스 스크립트 작성 이후에 싱글톤이 적용되어야하는 스크립트(매니저급)에 해당 베이스를 상속 받으면 됩니다. 하이어라키에 씬 매니저 하나만 올려두고, 씬매니저의 스크립트를 통해 싱글톤 베이스에서 작성해둔 Init 함수를 호출해서 씬에서 배치할 순서대로 매니저 스크립트를 동적생성하여 관리할 수도 있습니다. 매니저급 스크립트들은 접근에 용이하기 위해 왠만하면 싱글톤 패턴을 사용하는 경우가 많기 때문에 싱글톤 베이스를 만들어두면 매니저 오브젝트들의 유지보수 및 관리가 더 편해집니다.
Unity 깃 허브 LFS 오류
·
Unity
깃허브에서 유니티 프로젝트를 푸쉬하는 과정에서 해당 에러가 발생했습니다.   오류가 발생한 이유는 100MB가 넘은 에셋을 그냥 커밋하려고 해서 생긴오류가 아닌가라는 생각이 들어서 https://docs.github.com/ko/repositories/working-with-files/managing-large-files/installing-git-large-file-storage Git 대형 파일 스토리지 설치 - GitHub DocsGit LFS를 사용하려면 Git과 별개인 새 프로그램을 다운로드하여 설치해야 합니다.docs.github.com해당 사이트에서 깃 LFS를 다운 받고, 이후 문제가 발생하는 프로젝트로 가서 깃 베쉬를 시작한 이후에 $ git lfs install 을 입력합니다. 해당 프..
Unity 머티리얼 옵션
·
Unity
Rendering Mode : 재질감을 표현할 수 있는 옵션 Albedo : 빛을 반사하는 정도, 반사율 Metallic : 객체 표면에 금속 재질을 표현하기 위한 텍스처 Normal Map : 표면의 굴곡을 표현하기 위한 텍스처 Height Map : 높낮이를 표현하는 텍스처 Occlusion : 사물의 입체감과 깊이감을 살리는 흑백 텍스처, 간접 조명에 의해 생기는 명암을 뚜렷히 표시 Detail Mask : SecondaryMaps에 적용할 마스크를 설정, 특정 부분을 좀 더 세부적으로 표현할때 사용 Emission : 스스로 빛을 방출하는 속성
Unity Rigidbody 프로퍼티
·
Unity
Mass : 게임 오브젝트의 질량 Drag : 리지드바디 리니어 속도의 감쇠 속도를 정의 (공기 저항) Angular Drag : 리지드바디 회전 속도의 감쇠 속도를 정의 (공기 저항) Automatic Center Of Mass : 리지드 바디의 모양과 스케일을 기반으로 물리 시스템의 예측 질량 중심을 사용할 수 있음. Automatic Tensor : 연결된 모든 콜라이더를 기반으로 물리 시스템의 예측 텐서 및 텐서 회전을 사용할 수 있음 Use Gravity : 리지드 바디에 중력 효과를 토글 Is Kinematic : 활성화시 물리 시스템으로 오브젝트를 움직이거나 회전할 수 없고 Transform을 통해 움직이고 회전해야함 Interpolate : 리지드바디의 모션이 흔들리는 것 같은 때 부드럽게..
Unity Prefab Variant
·
Unity
1. 사용하는 이유 https://docs.unity3d.com/kr/2018.4/Manual/PrefabVariants.html 프리팹 배리언트 - Unity 매뉴얼 프리팹 배리언트는 프리팹의 사전 정의된 배리에이션 집합이 필요할 때 유용합니다. docs.unity3d.com 유니티 공식 문서에 따르면 프리팹 배리언트는 사전의 정의된 배리에이션의 집합이 필요할 때 유용하다고 합니다. 풀어서 설명드리자면, 메이플의 몬스터인 주황버섯,좀비버섯,파란버섯이 있다고 생각합시다. 여기서 좀비버섯, 파란버섯은 주황버섯 프리팹을 기반으로 만들어진 친구들입니다. 이때 주황버섯 프리팹원본에게 모자를 씌워주면, 좀비 버섯, 파란버섯은 전부 모자를 쓰게됩니다. 이경우를 막기 위한게 프리팹 배리언트입니다. 좀비버섯, 파란버섯..
Unity Scriptable Object
·
Unity
1. Scriptable Object를 사용하는 이유 Scriptable Object는 스크립팅 가능한 오브젝트라는 의미로 대용량 데이터를 저장에 최적화된 데이터 컨테이너 입니다. Scirptable Object의 장점은 손쉽게 Data를 오브젝트화 시켜서 관리할 수 있고, 객체를 생성할때 스크립터블에 미리 정의된 데이터를 참조해서 가져오는 형식이기 때문에 Calss에 비해 메모리를 절약할 수 있다는 점이 장접입니다. 2. Sciptable Object 스크립트 작성 1. 스크립트를 생성한뒤 모노비헤이비어 대신 Scriptable Object를 상속받습니다. 2. 스크립터블 오브젝트에 정의할 데이터들을 상속받은 클래스 안에 작성합니다. ScriptableObject를 상속 받은 클래스는 에셋메뉴에서 생성..
Unity UnityEvent
·
Unity
1. UnityEvent를 사용하는 이유 UnityEvent의 역할은 우리가 자주 사용하는 event Action과 역할이 비슷합니다. event Action의 경우 만들어둔 이벤트에 함수를 코드상으로 구독을 걸어야하는데, UnityEvent의 경우 Inspector창에서 직접 드래그앤 드롭으로 이벤트들을 연결할 수 있다는 장점이 있습니다. 이는 장점이자 단점이 될 수도 있는데, 만약 유니티에디터에서 Inspector창에서 연결된 값들을 잃어 버린다면, 다시 하나하나 연결 시켜야한다는 문제가 생길 수도 있으니 가급적이면 로직이 간단하거나, 많은 함수들이 구독되지 않는 이벤트에 사용하는 것이 좋다고 생각합니다. 2. UnityEvent 사용법 1. Using UnityEngine.Events를 추가합니다...
Unity InputSystem
·
Unity
- Input System 1. 사용하는 이유 유니티에 존재하는 Input System을 사용하면 어떠한 입력 값을 받았을 때 특정 함수들을 실행하는 이벤트를 만들 수 있습니다. Input System의 장점은 플랫폼 대응이 좋다는 점인데, 우리가 키보드 뿐만아니라 조이스틱, XR과 같은 입력장치들을 편하게 추가하거나 수정할 수 있다는 점입니다. 2. 사용하는 방법 프로젝트 뷰에서 Create -> Input Actions을 추가하여 입력값이 발생했을 때 실행할 Action들을 설정할 수 있습니다. - Button Type +를 클릭해 Action을 추가할 수 있으며, 해당 Action들은 각각의 Action Type이 존재합니다. 크게 Button 타입과 Value 타입으로 나눌 수 있는데, Butto..