반응형

전체 글 665

Zenject Binding 을 사용하여 컴포넌트 바인딩하기

Zenject Binding 을 사용하여 컴포넌트 바인딩하기 ZenjectBinding 을 사용하면 스크립트에서 GameObject.Find() 라든지, MonoBehaviour를 상속받은 클래스에서 인스펙터에 수동으로 드래그 해서 바인딩한다든지 하지 않고, DI(Dependency Injection)을 이용하여 ID를 이용해서 바로 사용할 수 있다. 하이어라키에 Image 컴포넌트가 붙은 FrontBlackPanel이라는 게임오브젝트가 있다 해당 게임오브젝트에 Add Component 버튼을 클릭하여 ZenjectBinding 컴포넌트를 추가 후, Components 에 해당 Image 컴포넌트를 바인딩 시켜준다. 그래고 Identifier 를 자기가 원하는 문자열로 지정해준다. 필자의 경우 Front..

Unity 2024.03.27

ZenjectException: Assert hit! Tried to create multiple instances of ProjectContext!ModestTree.Assert.That (System.Boolean condition, System.String message)

ZenjectException: Assert hit! Tried to create multiple instances of Context!ModestTree.Assert.That (System.Boolean condition, System.String message) 젠젝트(Zenject)에서 하나 이상의 ProjectContext 인스턴스를 생성하려고 시도했을 때 발생하는 에러 ProjectContext는 싱글톤이어야 하며, 전체 프로젝트에 대해 하나의 인스턴스만 있어야 한다. ProjectContext 는 직접 만들지 않더라도 자동으로 생성이 되는데, 사용자가 임의로 만들었다면 중복생성을 시도했다고 메시지를 띄우는 것이다. 본인이 만든 ProjectContext를 사용하고 싶으면, Resources 폴..

Unity 2024.03.27

UnityEvent와 Action Delegate 의 차이

유니티이벤트(UnityEvent)와 액션 델리게이트(Action Delegate)의 차이 UnityEvent는 Unity의 이벤트 시스템의 일부로, UnityEngine.Events 네임스페이스에 속합니다. 이는 Action 과 비슷한 개념이지만, Unity의 시리얼라이징(Serializing) 기능과 통합되어 있어 인스펙터(Inspector)에서 직접 이벤트를 관리하고, 리스너(listener)를 할당할 수 있게 해줍니다. 이로 인해, 게임 개발 시 비개발자도 쉽게 이벤트를 설정하고 조작할 수 있습니다. UnityEvent와 Action의 주요 차이점은 다음과 같습니다. - 시리얼라이징: UnityEvent는 Unity인스펙터에서 시각적으로 수정할 수 있도록 설계되어 있으며, 게임 오브젝트와 컴포넌트에..

Unity 2024.03.27

젠젝트(Zenject)를 사용한 후 콘솔창에 버그가 생긴 듯

젠젝트(Zenject)를 사용한 후 콘솔창에 버그가 생긴 듯 아니면 내가 캐치하지 못하는 뭔가가 있는지도 하지만 아무리 봐도 버그가 맞는 것 같다. 예외가 발생해서 에러가 발생해야 하는 곳에서도 에러가 뜨지 않고 그냥 넘어가버린다. 그런데 웹상에 왜 나와 같은 경험을 한 글이 하나도 없지? 물론 잘 쓰면 좋은 점도 당연히 많겠지만 뭔가 불안정한 느낌. 예를 들면 이런거 콘솔창에 필터링을 저렇게 했는데 밑에 905 이부분은 도대체 왜 나오는건지. 뭔가 쎄하다 내가 알지 못하는 곳에서 뭔가가 터진 것 같은 느낌. 동작도 뭔가 좀 이상하다.아무래도 Zenject를 걷어내야 할 것 같다. zenject console bug 두더지게임: 리마스터 무료 게임쿠폰 두더지게임: 리마스터 무료 게임쿠폰 "여러분 공짜 쿠..

Unity 2024.03.25

이벤트 체인 구성한 뒤 Log를 통해 이벤트에 리스너들이 등록이 된 걸 GetInvocationList 메서드로 확인한 후 실제 이벤트를 발생시켰는데 리스너가 하나도 없는 걸로 인식이 될 때

이벤트 체인 구성한 뒤 Log를 통해 이벤트에 리스너들이 등록이 된 걸 GetInvocationList 메서드로 확인한 후 실제 이벤트를 발생시켰는데 리스너가 하나도 없는 걸로 인식이 될 때 이건 뭔 이상한 버그인가 라고 생각이 들었는데 알고보니 계층구조 내에 두 군데 게임오브젝트에 동일한 해당 스크립트 컴포넌트가 부착되어 있었는데, 하나는 사용을 하지 않을 예정이어서 게임오브젝트를 비활성화를 해놨는데, 게임오브젝트가 비활성화 되어있음에도 불구하고, 두 스크립트가 모두 실행이 되어서 실제 사용하는 스크립트에서는 이벤트 초기화가 정상적으로 되었음에도 불구하고, 비활성화 되어있던 게임오브젝트에 있는 스크립트가 OnEnable 메서드가 호출이 되지 않아서 초기화가 되지 않은 상태에서 이 엉뚱한 이벤트가 트리거..

Unity 2024.03.24

유니티 Color() 변화가 없을 때

유니티 Color() 변화가 없을 때 유니티 에디터상에 Color Picker를 보면 RGBA 가 0~255 범위로 되어있어서 같은 유니티 식구(?) 이니까 RGBA순으로 new Color(0~255, 0~255, 0~255, 0~255) 이런식으로 사용할 것 같지만 어셈블리 UnityEngine.CoreModule namespace UnityEngine; RGBA의 범위가 각각 0~1f이기 때문에 255로 나눠서 사용하면 된다. 두더지게임: 리마스터 무료 게임쿠폰 두더지게임: 리마스터 무료 게임쿠폰 "여러분 공짜 쿠폰입니두더지!!" 구글플레이스토어에서만 됩니두더지! 애플 앱스토어는 정책상 안됩니두더지! 10만골드 2024 20만골드 새해복 30만골드 가족 4 ssscool.tistory.com [무료게..

Unity 2024.03.20

ZenjectException: Unable to resolve 'HPManager' while building object with type 'DataManager'. Object graph:DataManager

ZenjectException: Unable to resolve ' bla ' while building object with type ' blabla '. Object graph: blabla ZenjectException 이 예외가 뜨는 이유는 GameInstall에 HPManager를 바인딩 하지 않았기 때문이다. 발생 상황을 시뮬레이션 해보자면 이렇다. AManager를 GameInstall 스크립트 안에서 바인딩한 후 ProjectContext 또는 기타 Context에 Mono Installers에 등록을 한다. 원하는 대로 잘 동작한다. 그리고 나서 BManager를 GameInstall 에서 바인딩하는걸 깜빡한 후, 기타 다른 사용 스크립트에서 Inject 후 사용한다. 그러면 저런 예외가..

Unity 2024.03.20

원격 리포지토리에 푸시하지 못했습니다. 자세한 내용을 출력창을 참조하세요

유니티 게임 제작 시 Firebase를 사용해야 할 때 Github LFS를 사용해야 할 상황이 생기는데(Auth 관련 SDK Package 를 설치하면 2개의 파일의 용량이 90mb, 160mb 임) LFS 설치 및 설정을 했음에도 원격 리포지토리에 푸시하지 못했다고 에러가 뜰 때. Remote: Resolving deltas: 100% (119/119), completed with 17 local objects. Remote: warning: File Assets/Firebase/Plugins/x86_64/FirebaseCppApp-11_8_0.so is 87.92 MB; this is larger than GitHub's recommended maximum file size of 50.00 MB R..

Git, GitHub 2024.03.18

유니티 부모 오브젝트, 자식 오브젝트 레이어 셋팅과 Rigidbody 2D 유뮤에 따른 상호작용

유니티 부모 오브젝트, 자식 오브젝트 레이어 셋팅과 Rigidbody 2D 유무에 따른 상호작용 부모 오브젝트의 레이어는 parent 자식 오브젝트의 레이어는 child 벽 오브젝트의 레이어는 wall 으로 셋팅해놓고 부모 오브젝트에는 Box Collider 2D, Rigidbody 2D 둘 다 있고 자식 오브젝트에는 Box Collider 2D만 있고 벽 오브젝트에는 Box Collider 2D, Rigidbody 2D 둘 다 있는 상황에서 Project Settings > Physics 2D > Layer Collision Matrix 셋팅을 child 레이어와, wall 레이어를 서로 감지하게 체크를 한 상태에서는 벽 오브젝트가 parent 레이어인 부모 오브젝트는 감지를 하지 않지만, child ..

Unity 2024.03.14

유니티 Rigidbody2D Collision Detection 옵션: 총알처럼 빨리 움직이는 물체 충돌 감지를 위한 셋팅

유니티 Rigidbody2D Collision Detection 옵션: 총알처럼 빨리 움직이는 물체 충돌 감지를 위한 셋팅 유니티에서 Rigidbody2D 컴포넌트를 사용할 때 Collision Detection 옵션은 두 가지 주요 모드를 제공합니다. Discrete 와 Continuous 이 옵션은 Rigidbody가 다른 오브젝트와 충돌을 감지하는 방식을 결정합니다. 2D 게임 개발 시 충돌 처리 방식을 올바르게 선택하는 것은 게임의 물리적 상호작용을 정확하고 신뢰할 수 있게 만드는 데 중요합니다. Discrete Collision Detection - 정의: Discrete 충돌 감지는 가장 기본적이고 성능이 가장 좋은 충돌 감지 방식입니다. 이 모드에서는 매 프레임마다 오브젝트의 위치를 체크하여..

Unity 2024.03.14
반응형