본문 바로가기

유니티(Unity)

(42)
라이트맵 런타임 Import 주의할 점 런타임 중 라이트 맵을 임포트 하는 기능 구현 중. 에디터에서는 런타임 중에도 잘 임포트 되지만, 빌드된 프로그램에서는 임포트가 안되는 현상 발생. 수십시간 테스트 해 본 결과 정말 황당했다. 런타임 중에 빌드할 때, 그 씬에 라이트 맵이 구워졌던 흔적이 있어야한다. 라이트맵을 런타임 중에 라이트 맵을 씌울 대상 오브젝트 말고 아무거라도(나의 경우 기본 큐브) 라이트맵이 구워져있어야 Unity에서 빌드 할 때, 씬에서 Baked 라이트 맵 사용이 가능한 것 같다.
Unity Android 빌드 시 라이트맵 어두움 컬러 스페이스를 linear에서 gamma로 바꾼다.
Collection was modified; enumeration operation may not execute. 에러. 리스트 요소 제거 시 주의 할점 보통 foreach문에서 해당 컬렉션을 읽는 도중 수정을 시도할 시 발생하는 에러이다. 수정전: foreach (TMP_InputField input in list) { if (input == null) { list.Remove(input); continue; } inputDict.Add(input.transform.name, input); } 첫번 째 수정: for (int i = 0 ; i < list.Count ; i++) { TMP_InputField input = list[i]; if (input == null) { list.RemoveAt(i); continue; } inputDict.Add(input.transform.name, input); } 하지만 이렇게 작성하면 문제가 발생 할 수 있..
다중 스레드에서 딕셔너리 동시 접근시 에러 InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct. InvalidOperationException: 비동시 컬렉션을 변경하는 작업에는 독점 액세스 권한이 있어야 합니다. 이 컬렉션에 대한 동시 업데이트가 수행되어 컬렉션의 상태가 손상되었습니다. 컬렉션의 상태가 더 이상 올바르지 않습니다. 서로 다른 스레드에서 딕셔너리에 동시 접근하면 해당 에러가 발생한다..
Array,List,Dictionary 참조 변경 using System; using System.Collections.Generic; public class Program { public static void Main() { string[] arr = {"a","b","c","d"}; foreach(string str in arr) { Console.Write(str); } Console.WriteLine("--------"); string[] arr2 = {"d","e","f","g", "h", "i"}; arr = arr2; foreach(string str in arr) { Console.Write(str); } } } 결과 : abcd-------- defghi using System; using System.Collections.Generic..
Unity D3D11 에러 해결방법 그래픽 카드 충돌로 인해 발생하는 것으로 예상된다.해결방법은 windows 설정 -> 시스템 -> 디스플레이 -> 그래픽 -> unity Editor 누르고 옵션 -> 고성능(나의 경우에는 RTX3050) 아마도 기존에는 Windows가 결정하도 허용(고성능) 이렇게 되어있을 것이다.위처럼 하나의 그래픽 카드만 사용하게 함으로써 해결가능하다.   +이렇게 하니 해결된 줄 알았는데 아니였음. 아래는 나의 특수한 경우에 해당되는 해결법 원인이 뭘 까 생각하던 도중 나의 경우 게이밍 노트북에서 unity를 실행중이었는데, 게이밍 노트북의 경우 대부분 노트북 전원을 연결하지 않으면 배터리 절약을 위해 성능이 저하된다.(확실하진 않지만 전원이 연결되지 않으면 내장 그래픽만 사용되서 그렇다는 말이 있음.)그래서 전..
Unity glTF Importer Unity 런타임 중, 3D모델을 임포트하기위해 진짜 고생많이 했었는데 OBJ파일을 업로드하는 것은 성공했으나, FBX파일은 도저히 할 수가 없었다. 그러다 최근에 GLTF 파일형식에 대해 알게 되었다. glTF 란 위키백과: "glTF(GL Transmission Format의 줄임말)는 3차원 장면과 모델을 표현하는 파일 포맷으로 JSON 표준에 기반하고 있다. 크로노스 그룹 (Khronos Group)의 3D Format 작업반에서 제정한 표준이며, HTML5DevConf 2016 행사에서 처음 발표되었다. 효율성과 상호 운용성을 강조한 파일 포맷으로서, 실행에 필요한 부하를 최소화 하도록 설계되었다." 를 말한다. 한마디로 말하자면 이 파일 형식은 "애니메이션"과 "모델링 데이터"가 담겨있는 "런..
Firebase Auth 구글 소셜 로그인 구현 시 주의할 점 https://github.com/googlesamples/google-signin-unity/releases Releases · googlesamples/google-signin-unity Google Sign-In API plugin for Unity game engine. Works with Android and iOS. - googlesamples/google-signin-unity github.com 이 패키지를 이용하면 쉽게 모바일 구글 소셜 로그인 기능을 구현할 수 있다.(데스크탑 앱이나 unity에디터에서는 동작하지 않는다.) 1. 패키지를 임포트 할 때 'Parse' 폴더는 체크 해제한다. 기존의 unity 기능과 충돌해서 에러가 발생한다. 2. 파이어 베이스 프로젝트 설정에서 sha1 ..
unity sha인증서 지문 확인 jdk 경로 복사 - > cmd에서 'cd {방금복사한 경로}\bin' -> keytool -list -v -keystore {나의 keystore가 존재하는 디렉토리경로}\(keystor파일명).keystore -> keystore생성시 사용한 비밀번호 입력 이렇게 하면 보인다.
uwp앱에서 exe파일 실행시키기 https://learn.microsoft.com/en-us/answers/questions/311271/run-an-exe-batch-file-from-uwp-app Run an exe/batch file from UWP app - Microsoft Q&A How to run an exe or batch file on a button click from a UWP app? learn.microsoft.com 위 사이트에 과정이 잘 나와있다. 메인페이지cs스크립트에 다음과 같이 버튼이벤트를 작성해준다. private async void Button_Click(object sender, RoutedEventArgs e) { await FullTrustProcessLauncher.LaunchFullTrust..