본문 바로가기
반응형

개발/UNITY12

[Unity] Android 버전 수동 업데이트 하는 방법 Android 버전 수동 업데이트 하는 방법 유니티 에디터를 재설치하여 프로젝트 빌드시 android 버전이 맞지 않아 업데이트를 했지만 제대로 업데이트가 되지 않아 수동 업데이트를 찾아봤다. 1. 환경 변수 JAVA_HOME 설정 환경 변수 JAVA_HOME을 설정 해줘야한다. 작업 표시줄 검색창에 "고급 시스템 설정"을 찾아서 선택 * 환경 변수 선택 새로 만들기 변수 이름에는 "JAVA_HOME"을 입력하고 변수 값은 유니티 에디터에서 "Edit → Preferences.. → External Tools → JDK 경로 패스 카피" 해서 넣어주면 됩니다. 완료 후 Cmd에서 java를 입력하면 나오는 모습 ( 모두 설정하고도 해당 화면이 나오지 않는 다면 컴퓨터 재시작을 권유드립니다.) 2. 안드로.. 2023. 12. 16.
Unity - 다운로드 에셋 버전관리 직접하기 유니티가 에셋번들은 직접 관리를 해주고 있으나 때로는 직접 버전을 관리해야할 수 있다. 다운로드 받을 파일에 대한 정보를 담아둔 텍스트가 있으면 좋을 것 같다. 구조는... 1.Filename : 파일명 2.path : 다운로드 경로 3.HashKey : 파일 해쉬값 ... 맨처음 파일 정보를 담아둔 텍스트를 받아 메모리에 저장한다. 그리고 로컬에 저장된 파일과 다운로드 받을 파일의 값을 비교하여 다운로드한다. 해시값이 서로 달라 다운받은경우 파일의 저장위치를 ..[파일명]/[HashKey]/ 으로 해두면 다음 패치시 파일 비교할때 해당 경로에 파일이 있는지 비교하여 없으면 다운로드 있으면 패스 하게 할 수 있다. 이후 파일을 다운로드하고는 이전에 받아둔 파일은 제거하는것이 좋을 것 같다. 다운받은 경로.. 2021. 2. 15.
Unity - 에디터에서 에셋번들 리소스 바로 불러오기 에셋번들로 리소스를 묶으면 테스트할때 매우 불편할때가 많다. 리소스가 수정되거나 추가되었을때 테스트를 하려고하면 에셋번들을 빌드해서 서버에올리고 또 내려받아서 에셋 번들을 통해 리소스를 불러왔었다. 다음은 에셋번들로 묶일 에셋들을 찾는 코드이다. //모든 에셋 번들 명을 불러온다. string[] assetBundleNames = UnityEditor.AssetDatabase.GetAllAssetBundleNames(); for(int i =0 ; i< assetbundleNames.Length; ++i) { //에셋번들에 포함된 에셋의 경로를 모두 불러온다. string[] assetPaths = UnityEditor.AssetDatabase.GetAssetPathsFromAssetBundle(asse.. 2021. 2. 15.
Unity Asset - Bolt 설치하기 안녕하세요. 유니티 에셋 볼트에 대해 다뤄 보겠습니다. 볼트는 유니티용 비주얼 스크립팅 에셋입니다. 볼트를 사용하면 코드를 직접 작성하지 않아도 유니티 프로젝트의 로직을 만들수 있습니다. 볼트는 언리얼의 블루프린트같은 시각적 그래프가 있어서 프로그래머, 기획자, 디자이너 모두 로직을 설계할 수 있습니다. 볼트는 2020년 7월 22일 무료화 선언을 했습니다. 현재는 유니티 에셋 스토어에서 무료로 받아볼 수 있습니다. assetstore.unity.com/packages/tools/visual-scripting/bolt-163802?_ga=2.225699167.45210945.1603376352-1170668531.1559967765 Bolt | 비주얼 스크립팅 | Unity Asset Store Get .. 2020. 10. 23.
[UNITY]AssetBundle 압축 종류 BuildAssetBundleOptions.None: 이 번들 옵션은 직렬화된 데이터 파일의 압축된 단일 LZMA 스트림인 LZMA 압축 포맷을 사용합니다. LZMA 압축 포맷은 번들을 사용하기 전에 전체 번들의 압축을 풀어야 합니다. 따라서 파일 크기는 가장 작아지지만, 압축 해제 때문에 로드 시간이 조금 길어지게 됩니다. BuildAssetBundleOptions를 사용하는 경우 번들의 에셋을 사용하기 위해 모든 번들의 압축을 풀어야 합니다. 번들의 압축이 풀린 이후에는 디스크에서 LZ4 압축 포맷을 사용하여 다시 압축됩니다. LZ4는 번들의 에셋을 사용하기 위해서 모든 번들의 압축을 풀 필요가 없습니다. 이 옵션은 번들의 에셋을 사용하기 위해서 모든 에셋을 로드해야 하는 경우 사용하기에 적합합니다... 2020. 10. 6.
[UNITY]Unity AssetBundle.RecompressAssetBundleAsync Unity AssetBundle.RecompressAssetBundleAsync 유니티 에셋번들파일을 재압축하여 저장하는 함수. [사용이유] UnityWebRequestAssetBundle를 통해 로드된 LZMA 압축 에셋 번들은 자동으로 LZ4 압축 포맷을 통해 다시 압축되어 로컬 파일 시스템에 캐시된다. UnityWebRequestAssetBundle를 사용하지 않고 LZMA 압축 에셋 번들을 로컬디스크에 저장할경우 에셋번들 로드가 상당히 무거워진다. AssetBundle.RecompressAssetBundleAsync를 활용하여 다운받은 LZMA형식의 에셋번들을 가벼운 형식으로 재압축하여 앱네 로드를 빠르게 할 수 있다. [함수원형] public static AssetBundleRecompressO.. 2020. 8. 5.
[UNITY]Null Reference Exception이란 무엇입니까? Null Reference Exception이란? 어떤 오브젝트에도 참조하고 있지 않는 참조 변수에 액세스하려고 하면 NullReferenceException이 발생합니다. 참조 변수가 오브젝트를 참조하지 않으면 그것은 null로 취급될 것입니다. 변수가 “NullReferenceException”을 실행함에 따라 null일 때 실행시 오브젝트에 액세스하려고 하는 것을 알려줍니다. C# 및 JavaScript의 참조 변수는 C 및 C++ 포인터의 개념과 비슷합니다. 어떤 오브젝트도 참조하고 있지 않은 것을 나타 내기 위해 참조 형식은 null이 기본입니다. 그러므로, 참조 되고 있는 오브젝트에 액세스하고, 없으면NullReferenceException을 얻습니다. 코드에서 NullReferenceExce.. 2020. 7. 24.
[UNITY]유니티에서 알아야 할 필수 클래스 다음 클래스들은 Unity에서 스크립팅을 할 때 사용하는 가장 중요한 클래스의 일부입니다. 이 클래스는 Unity 스크립팅 시스템의 핵심 부분을 커버하고, 어떠한 함수와 이벤트를 사용할 수 있는지 찾는 것에 적합합니다. 클래스 설명 MonoBehaviour 새로 생성한 모든 Unity 스크립트의 기본이 되는 클래스입니다. MonoBehaviour 레퍼런스는 전체 기능 목록과 게임 오브젝트에 추가할 수 있는 표준 스크립트 이벤트를 제공합니다. 상호작용하는 것이나 게임의 각 오브젝트의 컨트롤을 찾고 있다면 여기부터 시작하십시오. Transform 모든 게임 오브젝트는 공간(3D, 2D 모두)에 위치, 회전, 스케일을 가지고 있으며 그것은 트랜스폼 컴포넌트로 표현됩니다. 그리고 트랜스폼 컴포넌트는 많은 유용한.. 2020. 7. 24.
[UNITY]이벤트 함수의 실행 순서 Unity 스크립팅시, 미리 정의된 순서대로 실행되는 많은 이벤트 함수가 있습니다. 아래에서는, 실행 순서를 설명합니다. 에디터 Reset : Reset은 개체가 처음 연결되었을 때 스크립트의 프로퍼티로 초기화하는 데 호출됩니다. Reset 명령을 실행했을 때도 마찬가지입니다. 첫 번째 씬 로드 이 함수는 씬이 시작되면 호출됩니다(씬의 각 오브젝트에 대해 한 번). Awake : 이 함수는 항상 Start 함수의 이전 및 프리팹의 인스턴스화 직후에 호출됩니다. (만약 게임 오브젝트가 시작할 때 무효인 경우, 활성화되거나 연결된 하나의 스크립트 함수가 호출될 때까지, Awake는 호출되지 않습니다.) OnEnable : (오브젝트가 활성화된 경우에만 호출됩니다): 이 함수는 오브젝트를 활성화 한 직후에 호.. 2020. 7. 24.
[UNITY]유니티에서 ClearCache는 무조건 캐시를 다 지울까? Caching.ClearCache 형태 public bool ClearCache(); public bool ClearCache(int expiration); 내용 현재 응용프로그램에 캐싱되어있는 모든 캐시를 제거합니다. 이슈 반환값이 bool 형이며 항상 성공하지 않습니다. 어디선가 캐싱파일을 사용하고 있으면 해당 함수는 false를 반환합니다. 캐시 제거가 성공적으로 이루어 졌을 경우 true를 반환합니다. 2020. 6. 26.
[NGUI]Widgets and panels should not be on the same object! Widget must be a child of the panel. 에러 메세지 : Widgets and panels should not be on the same object! Widget must be a child of the panel. 원인은 Widget과 panel component가 같은 오브젝트에 추가되어있어서 발생하였으며 , Widget과 Panel 중 필요한 component만 사용 하면 해결된다. 2020. 6. 26.
[NGUI]You can't place widgets on a layer different than the UIPanel that manages them.If you want to move widgets to a different layer, parent them to a new panel instead. 경고메세지 : You can't place widgets on a layer different than the UIPanel that manages them. If you want to move widgets to a different layer, parent them to a new panel instead. 원인은 Instantiate 하는 오브젝트의 Layer가 부모의 Layer가 다른경우 발생하게 되어 Instantiate한 오브젝트의 Layer를 부모와 동일하게 변경해주거나 원본 오브젝트의 Layer를 부모와 동일하게 지정하면 해결 된다. 2020. 6. 26.
728x90