본문 바로가기
728x90

분류 전체보기77

Unity, AAB 빌드 시스템에서의 Could not produce class with ID '(number)' 애러 발생 APK에서는 잘됐지만, AAB에서만 발생하는 이슈 IL2CPP를 사용하면 AAB 관련되어서 디펜던시 추가가 필요할 때가 있습니다. AAB는 APK 파일을 분리하는 시스템이고, 분리하는 과정에서 IL2CPP 빌드시스템을 이용할 경우 메인이 되는 APK 기준으로 내부 클래스들이 빌드되기에 사용되지 않는 클래스와 관련된 정보는 빌드에 포함시키지 않게 하여 용량도 줄이고 빌드 속도도 빠르게 하는 스마트한 기능이 있습니다. 하지만, '메인APK ( base)'기준이기 때문에, '메인APK'에 없는 클래스나 정보가 '추가 다운로드APK'에 있는 경우 애러가 발생합니다. (빌드된 내용에는 클래스 정보가 존재하지 않아서 애러가 발생 및 기능 작동하지 않거나 버그 또는 사이드이펙트가 발생함) 애러 전문 애러 전문은 아래.. 2024. 4. 17.
Unity, XCode15 업데이트 이후 빌드 애러 인트로 xcode Assertion failed: (false && "compact unwind compressed function offset doesn't fit in 24 bits"), function operator(), file Layout.cpp, line 5758. 위와 같은 애러 전문이 있는 경우는 스크린샷과 같이 타겟 중에서 UnityFramework 선택 후, [Build Settings] -> Linking - General -> Other Linker Flags에서 "+"를 누르고 "-ld64"를 추가하면 된다고 합니다. (정확히는 LD64) 하지만 저같이 젠킨스 등을 통해 빌드 파이프 라인을 이용하여 유니티 빌드부터 XCode 빌드까지 자동화 되어있는 경우는 일일이 추가할 수가 없.. 2024. 4. 3.
Unity, 버전 업그레이드 이후 SDK 애러로 인한 빌드 실패 유니티의 실수 최근 애플 정책 업데이트로 인해 유니티 측에서는 사용하는 엔진의 버전을 올릴 것을 권고했습니다. (링크: 유니티 코리아 유투브 채널, https://www.youtube.com/watch?v=Cx5pK7HAl0c) 업데이트를 하지 않으면 납품이 거절될 수도 있다고 하는 부분으로 필수 업데이트 사항인데요. 문제는 너무 급히 내놓았다는 점입니다. 2021.3.36f버전을 설치하고, 내장되어있는 JDK, NDK, SDK, Gadle 사용하고, 아무 것도 없는 비어있는 프로젝트 상태에서 빌드를 진행하면 빌드가 진행되지 않는 버그가 있다는 점입니다. 이 정도의 검수는 그저 비어있는 프로젝트 빌드만 해도 바로 알 수 있는 사항인데, 유니티 포럼 사이트에서 답변은 마치 구글측 실수라며 구글에 의해 수정.. 2024. 3. 21.
Unity, 버전 업그레이드 이슈 Analytics SDK 유니티 애널리틱스 애러? No cloud project ID was found by the Analytics SDK. This means Analytics events will not be sent. Please make sure to link your cloud project in the Unity editor to fix this problem. 위와 같은 애러가 유니티 프로젝트를 업그레이드 하는 과정에서 발생했습니다. 유니티 관련 애널리틱스에 정보가 기입되지 않았다는건데, 애시당초 사용하던 부분도 아니었던 부분이었습니다. 과거 버전에서 기본적으로 포함되어있는 유니티 패키지인데, 유니티 애널리틱스 정보가 없어서 원래 이상이 없었으나, 2021.3 (LTS) 버전 적용 이후에는 선택사항으로 바뀌면서, .. 2024. 3. 9.
Unity, 안드로이드 빌드 오류 또는 Resolution 작동 오류 안드로이드 내부 SDK 오류"Gradle failed to fetch dependencies"라는 애러 발생했습니다. "JAVE_HOME"으로 지정한 JDK와 유니티 내부 sdk명령어가 충돌날 때 발생하는 이슈입니다. 주로 빌드하는 경우 또는 안드로이드 Resolution 기능을 사용할 때, 발생하는 오류이며, 유니티 버전을 올릴 때 기존에 있던 종속성을 업데이트하는 경우 생기기도 합니다. 해결 방법아래의 "JDKResolution.cs" 스크립트를 "Editor" 폴더 안에 생성한다.모든 종속성 제거를 위해, Assets/Plugins/Android를 제거한다.유니티 프로젝트를 종료하고 재실행한다.재실행되는 과정에서 자동으로 Resolution이 실행되며 해결된다.스크립트JDKResolution.cs,.. 2024. 2. 27.
Unity, IK를 이용한 거미 다리 이동 IK란? Inverse Kinematics를 뜻 하는 줄임말이며, 역운동학이라는 의미를 가지고 있습니다. 보통 캐릭터의 모습을 표현할 때는 애니메이션을 사용하기 때문에, 지형에 맞게 발이 붙어서 움직이는 섬세한 표현을 할 수가 없습니다. 이를 IK를 통해 표현을 할 수 있으며, 발이 움직이는 지점으로부터 역으로 무릎, 골반까지 반대로 표현할 수가 있으며, 이를 IK를 이용한 기술이라고 합니다. IK (Inverse Kinematics): 하위 오브젝트로부터 상위 오브젝트가 따라 움직인다. FK (Foward Kinematics): 상위 오브젝트로부터 하위 오브젝트가 따라 움직인다. 우리가 알고 있는 뼈대가 움직이는 기준은 FK입니다. 예를 들어, 우리가 피규어에서 어깨 방향을 틀면, 하위가 되는 팔꿈치 .. 2024. 2. 14.
Unity, 매쉬 변형 예제 매쉬 변형 런타임 중 물체 형태 변형 또는 캐릭터 얼굴의 형태를 커스터마이징할 때, 사용되는 기술 중 하나입니다. 유니티에서는 매쉬 변형 관련된 코드를 제공하고 있습니다. 스크립트 MeshDeformer.cs using UnityEngine; public class MeshDeformer : MonoBehaviour { private Mesh _deformingMesh; private Vector3[] _originalVertices, _displacedVertices; private void Start() { // 매시 버텍스 정보 가져오기 _deformingMesh = GetComponent().mesh; _originalVertices = _deformingMesh.vertices; _displac.. 2024. 1. 23.
C#, 포인터의 크기 (Pointer size) 포인터의 크기 일반적인 데이터형에 따른 메모리 사이즈말고도 할당으로 인해서 생기는 메모리도 존재합니다. 우리는 이것을 포인터라고 표현합니다. 보통 변수를 선언할 때는 메모리로부터 할당을 받습니다. 우리가 클래스를 만들고, 클래스를 할당 받으면 메모리가 어떻게 얼마나 생기는지 예측할 수가 있기도하고, 필요할 때만 받을 수 있게 정확히 구분 지어 사용이 가능합니다. 할당으로 생기는 메모리 크기는 "4byte" 통상적으로 메모리 크기는 4byte입니다. 언어 환경 또는 빌드 때 시스템 환경이 32비트냐 64비트냐에 따라 8byte가 되기도 합니다. 이는 포인터에 값이 들어있으면 존재하고, null이면 존재하지 않습니다. 예제 아래와 같은 클래스들이 있습니다. public class A { public stri.. 2023. 12. 29.
Unity, Coroutine과 Invoke 차이 Coroutine과 Invoke는 무슨 차이점이 있는걸까? 유니티를 사용하다보면 인보크와 코루틴의 차이점이 무엇인지에 대해 의문을 품은 적이 있으실겁니다. 이 둘은 마치 싱글 쓰레드를 사용한다는 전설을 가지고 있는 유니티에서 마치 멀티 쓰레드를 사용하는 것처럼 편하게 사용할 수 있습니다. 여담으로 유니티는 싱글 쓰레드만 사용하지 않습니다. 이러한 처리들을 위해서 여러 백그라운드 워커쓰레드가 함께 동작하고 있으며, 이는 프로파일러를 통해서 확인이 가능합니다. (최근 회사에 유니티 코리아 세미나가 있었는데, 절대 싱글 쓰레드만 사용하지 않는다고 강조를 하더군요.) 실제로 프로젝트 작업을 하다보면 이 둘에 대해 구분 없이 쓰는 분도 있으며 대게는 어떻게 관리가 이루어지는지에 대해서 모르는 시는 분들이 생각보다.. 2023. 11. 10.
반응형