Unity 57

[WebGL] PWA 빌드시 최초 클릭할때 전체화면 변경 방지

PWA로 빌드한 웹페이지를 방문했을때, 첫 마우스 클릭을 하면 전체화면으로 전환되어 버린다. 내 경우 전체화면으로 전환할 이유도 없지만, 전환하였을때 input field 에 문자열을 입력하면 역순으로 입력되는 버그가 있었다. 아마 한글 입력을 위한 추가 패키지에서 버그가 발생한듯 한데, 함부러 건들고 싶지 않아서 전체화면 자체를 막는 방법을 생각했다.   WebGL 빌드 결과물 폴더 -> Build 폴더 -> web.loader.js 또는 build.loader.js 를 편집기로 열기검색에서 fullScreen 으로 검색 -> 아래의 문자열을 삭제hasFullscreen:!!document.body.requestFullscreen||!!document.body.webkitRequestFullscreen..

Unity 2025.02.27

WebGL 빌드세팅 (유니티 6 내용 추가)

이미지 압축PC : DXT 또는 Crunched DXT모바일 : ASTC오디오Decompress On Load (초기 로딩시 압축 해제)플레이어 및 빌드 세팅Gzip 압축.net framework 는 2.1 버전 선택Code Optimization은 Disk size with LTO 선택IL2CPP 옵션 : faster runtimeManaged stripping Level : High 미사용 코드 삭제하는 기능Optimized Mesh 켜기Debug symbols 끄기Enable Exceptions는 None 또는 Exceptions only아래의 Target WebAssembly 2023을 켤 경우 None 설정은 안된다 (현재)Target WebAssembly 2023 켜기 (Unity 6 에만 있..

Unity 2024.12.03

빌드 리포트 확인이 안될때.

먼저, 빌드 리포트 확인방법부터 다시 정리하자면, 유니티에서 빌드가 완료 된 후에 다음의 순서를 따른다.  1. Unity 의 console 탭을 클릭     - 우측 ... 클릭     - Open Editor Log 클릭     - Build Report 를 검색 간혹 해당 항목이 없을 경우가 있다.  이때에는 Mac 기준으론 콘솔의 보기 버튼 (파인더에서 열기) 클릭, 윈도우에선 해당 파일 위치를 참고하여 폴더에 접근한다. Editor-prev.log 파일을 열고, Build Report를 검색해보면 해당 내용이 나와있다.

Unity 2024.09.25

[WebGL] JSLib 에서 url 주소 획득 -> 유니티로 넘겨주기

프로젝트 진행중, 프론트엔드 페이지와 Unity WebGL 간 연동할 일이 생겼다. 프론트엔드에서 수신한 데이터 일부를 Unity WebGL 로 전달을 해야 하는 상황이 발생하였다. 해당 기능 구현을 위해서는 2가지의 접근법이 있다. 1. 프론트엔드 개발자가 유니티 WebGL 소스를 프론트엔드 내부로 이식 -> JSLib 를 통해 유니티로 원하는 데이터 전송2. 유니티 WebGL 에서, JSLib 를 통해 url 주소의 파라메터 값을 취득 -> 유니티로 원하는 데이터 전송1번의 경우 프론트엔드 개발자가 유니티 WebGL을 내부로 이식하기 위한 시간 및 스터디가 필요한 상황이라, 2번의 경우로 접근 하였다.  JavaScript 에서 현재 페이지 주소 및 파라메터 값을 취득 하는 방법window.locat..

Unity 2024.07.01

WebGL 에서 JavaScript Library <-> Unity 간 연계

유니티에서 ios, android 와 연계하는 법이 있듯, WebGL 빌드시 JavaScript Library와 연계하는 법도 있다. 유니티에서 제공하지 않는 프론트엔드의 기능들을 JavaScript Library 에서 구현하고, 해당 값을 유니티쪽으로 전달 해 줄 수 있다. 1. 유니티 프로젝트 -> Assets -> Plugins -> WebGL 폴더 생성2. 해당 폴더 안에 파일명.jslib 파일 생성3. 생성한 jslib 파일을 편집하여 JavaScript 코드 작성mergeInto(LibraryManager.library, { 함수명: function (인자값) { ..... return 리턴할 값; },}); 4. 유니티 스크립트에서, 해당 함수 호출 ....//선언 [DllIm..

Unity 2024.06.28

Addressable 스크립트에서 접근하기 (ft. 기존 항목에 라벨 추가하기)

만일 이미 설정한 Addressable 아이템들이 1000개가 있고, 해당 항목을 분류하여 라벨을 추가해야 하는 상황이라고 보자. 일일히 수작업을 하기에는 불가능 하다.  따라서 코드를 이용하여 손쉽게 접근하여 라벨링을 추가 할 수 있다. 우선, 추가할 라벨을 유니티 메뉴를 통해 추가하는게 좋을듯 싶다.   var settings = AddressableAssetSettingsDefaultObject.Settings; if (settings) { var group = settings.FindGroup(그룹명); foreach (var item1 in group.entries) { //어드레스명은 유니티 메뉴 -> Window -> Asset ..

Unity 2024.06.21

WebGL 용량 줄이기

만일 3D 라면,  1. 각 Mesh를 선택 -> 인스펙터 에서 Mesh Compression 을 이용하여 압축2. 이미지들 (Sprite) 선택 -> Max Size를 조절 하여 용량 줄이기. 3. Resources 폴더에 이미지 등을 넣지 않기     - 유니티에서 빌드시 미사용 에셋은 자동으로 삭제를 한다.      - 용량이 큰 포토샵 텍스쳐가 있어도, 빌드전에 압축하므로 png로 바꿀 필요 없다.  어떤 항목이 용량을 많이 차지하는지 보려면, 1. 유니티에서 빌드시 Build 버튼 옆 컴보박스를 눌러 Clean Build 버튼을 누른다2. 빌드가 종료되면, Console 우측 ... 클릭 -> Open Editor Log 클릭 -> 검색에 Build Report 를 검색하면     차지하는 용량..

Unity 2024.05.23

[WebGL] 전체화면 구동 (모바일 포함)

1. 템플릿 변경 유니티 플레이어 세팅 -> Resolution and Presentation -> PWA 선택 2. 빌드 후 index.html 수정 head 태그 내용 변경 핵심은 apple-mobile.... 부분과 viewport 부분이다. Unity WebGL Player 참고로, 커스텀 템플릿을 설정하면 매번 변경하지 않아도 된다. Unity 프로젝트 -> Asset -> WebGLTemplates 폴더 생성 Unity 설치폴더 -> PlaybackEngines -> WebGLSupport -> BuildTools -> WebGLTemplates -> PWA 폴더 복사 위에서 생성한 WebGLTemplates 폴더에 붙여넣기 후 이름 변경 (예 : CustomPWA) 플레이어 세팅 -> Res..

Unity 2024.02.06

리소스 관리 - Addressable (7) - AssetLabelReference

이전글 : https://dean83.tistory.com/209 이전글에 Label을 이용한 리소스를 가져오는 법을 살펴봤다. 실제 개발을 해보니 문자열을 넣어야 하는점이 휴먼에러를 불러올 수 있겠단 생각이 들었고, 찾아보니 AssetLabelReference 라는 타입이 있었다. Addressable 에서 추가된 라벨들을 설정 할 수 있는 타입이다. 스크립트에서 해당 변수를 추가 한 후 Inspector에서 드롭다운으로 라벨을 선택해 주면 된다. 이후, 해당 라벨명을 통해 Addressables.Load시 인자값으로 라벨명을 넣어주면 된다. [SerializeField] private AssetLabelReference backgroundLabel; private AsyncOperationHandle..

Unity 2024.02.05

리소스 관리 - Addressable (6) - 리소스 주소 활용

이전 페이지 : https://dean83.tistory.com/208 리소스 관리 - Addressable (5) - Label 및 다중로딩 이전 페이지 : https://dean83.tistory.com/207 리소스 관리 - Addressable (4) - Scene 이전 페이지 : https://dean83.tistory.com/206 리소스 관리 - Addressable (3) - Sprite 이전 페이지 : https://dean83.tistory.com/205 리소스 관리 - dean83.tistory.com 라벨을 통해 원하는 오브젝트 들을 한번에 가져오는 방법을 알아봤다. 그러나 이 경우 동시에 라벨에 해당하는 모든 리소스를 불러오기 때문에 메모리가 낭비될 수 있다. 해서, 또 다른 방법..

Unity 2024.02.02