본문 바로가기
728x90

분류 전체보기79

Unity, Json 리스트 파일 저장하기 리스트 저장JsonUtility를 통해 ToJson()하면 List 형식의 저장이 되지 않습니다. 하지만 하나의 클래스로 감싸서 저장하면 사용할 수 있습니다.스크립트using System;using System.Collections.Generic;using System.IO;using System.Text;using UnityEditor;using UnityEngine;public static class JsonUtilityExtention{ [Serializable] private class JsonWrapper { public List datas; } /// /// 단일 저장 /// /// 클래스 타입 /// 데이터 /// 경로 .. 2024. 7. 20.
Unity, 백터 내적과 외적 백터를 이용한 계산백터의 내적과 외적을 이용하면 어렵게 수식을 작성하지 않고, 물체의 앞뒤좌우를 쉽게 파악할 수 있습니다.1. 내적 (Dot Product, A·B)두 개의 백터의 곱으로 스칼라값을 가져올 수 있습니다. 스칼라값을 역cosθ에 반영하면 사이각을 가져올 수 있습니다.공식과 이해스크립트using UnityEditor;using UnityEngine;/// /// 백터 내적 테스트/// 설명: 두 개의 백터의 사이각을 가져올 수 있다. 해당 사이각을 통해서 스칼라를 가져올 수 있고, 스칼라는 cosθ에 해당, 스칼라 값을 통해서 앞뒤를 구분하는데 사용할 수 있다./// 예시: 내적을 통해 Onwer가 바라보는 방향(forward)을 기준으로 Target이 앞에 있는지 뒤에 있는지 구분을 할 수.. 2024. 6. 12.
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.
반응형