서론최근에 회사에서 WebGL 포팅 작업을 담당하게 되면서 발생하게 된 에러입니다.Unity 6.1 (6000.1.9 f1) 버전에서는 WebGL 할당 메모리가 증가되었다는 이야기를 듣고 빌드를 시도했습니다.빌드는 정상적으로 되었지만 WebRequest를 호출하는 부분에서 Invoking error handler due toTypeError: Module.dynCall_viiiii is not a functionat XMLHttpRequest.http_onload (http://localhost:8000/Build/NEW.framework.js:9497:31)NEW.framework.js:9497 Uncaught TypeError: Module.dynCall_viiiii is not a function ..
지난번에는 UI Toolkit을 소개했으면 오늘은 프로그래머가 어떤 식으로 사용하는지에 대해 정리하는 시간입니다.이번 글은 다음과 같은 순서로 진행됩니다.UI Builder를 활용해서 테스트 UI Document(.uxml) 작성하기작성한 UI Document를 기반으로 C# 코드 작성하기씬에서 컴포넌트를 연결 한 후 직접 테스트해보기1. UI Builder를 활용해서 UI Document(. uxml) 작성하기Project 우클릭 → Create → UI Toolkit → UI Document를 선택해서 새로운 UI Document를 생성합니다.이름은 TestUIDocument로 설정하겠습니다. (자유입니다.)생성된 TestUIDocument를 클릭하면 UI Builder 가 열리면서 확인할 수 있습니..
문제UnityHub : 3.12.1Unity : 2022.3.23 f1Unity Hub에서 프로젝트 실행 시 100%는 아니지만 빈번하게 발생하는 현상해당 현상일 때 모니터 상단부의 일부 영역을 가리는 검은색 박스가 노출된다.작업 관리자를 통해서 확인하면 Ram이 많이 올라간다.해결방법우선 임시적으로 해결하고 있는 방법으로는 강제 종료 후 다시 시작한다. 이 방법으로 해결해서 진행하는데도 문제는 없으나 조금 더 근본적인 해결 방법을 찾아보았습니다.Unity gets stuck on white loading screen on startup?Unity Discussions에 저와 비슷한 상황인 글을 발견했습니다.댓글에 있는 다양한 해결 방법을 하나씩 시도할 예정입니다.저의 경우 Kaelcoke가 작성한 Ap..
문제유니티 에디터를 실행한 이후 처음으로 uxml 파일을 선택해서 UI Builder를 실행하면 아래 화면처럼 비율이 깨져있는 Canvas를 볼 수 있습니다.해결 방법UI Builder → Hierarchy에서 최상위 uxml 파일을 클릭합니다.Inspector를 확인하면 다음과 같이 Width : 350, Height : 450 이렇게 이상한 값으로 설정되어 있는 것을 확인할 수 있습니다.해당 Size 바로 아래쪽에 위치한 토글인 Match Game View를 클릭하면 UnityEditor → GameView에서 설정한 사이즈로 적용됩니다.만약 기본 Canvas Size를 변경하고 싶다면?using System;using System.Reflection;using UnityEditor;using Uni..
Unity의 사용자 인터페이스 설계 및 구현 - 공식 홈페이지 E-Book을 참조했습니다.https://unity.com/kr/resources/user-interface-design-and-implementation-in-unity Unity의 사용자 인터페이스 설계 및 구현Unity의 UI 시스템으로 정교한 인터페이스를 만드는 방법을 알아보세요.unity.com최고의 UI는 바로 ‘눈에 띄지 않는’ UI입니다.UI → 게임의 몰입도를 유도하기 위한 디자인 장치 → 플레이어의 시간을 낭비하면 안 된다.Unity UI(UGUI) : 게임 오브젝트 기반 UI 시스템UI Toolkit : 웹 기술에서 아이디어를 얻어 개발된 UI 시스템UI ToolkitUI Toolkit은 본질적으로 기능적인 구현과 UI 디..
Unity 2D 카메라 설정과 스프라이트 PPU 계산법Unity에서 2D 게임을 개발할 때는 직교 카메라(Orthographic Camera)를 를 주로 사용합니다. 이때 카메라의 Size 설정과 해상도에 맞는 PPU(Pixels Per Unit) 값을 잘 설정해야 스프라이트가 선명하게 보이고 원하는 크기로 출력됩니다.카메라의 Size란?직교 카메라의 Size 값은 화면 중심에서 위쪽까지의 거리(유닛)를 를 의미합니다.이 값은 Unity 유닛 단위이며, 일반적으로 1 유닛 = 1미터로 가정합니다.- Size = 2 → 전체 세로 시야 : 4 유닛- Size = 5 → 전체 세로 시야 : 10 유닛즉, 전체 새로 유닛 = Size * 2해상도와 FOV(Field of View)예를 들어, 4K 해상도 ..
의존관계 역전 원칙(Dependency inversion principle)소프트웨어 모듈들을 분리하는 특정 형식상위(High-Level) 모듈은 하위(Low-Level) 모듈의 것을 직접 가져오면 안됨둘 다 추상화(abstraction)에 의존해야 함추상화는 세부 사항에 의존해서는 안됨.세부사항이 추상화에 의존해야 함.클래스가 다른 클래스와 관계가 있으면 안됨클래스가 다른 클래스의 작동 방식을 많이 알고 있으면 안됨종속성(dependency)또는 결합(coupling) 발생종속성은 어느 잠재적인 위험public class Switch : MonoBehaviour { public Door door; public bool isActivated; public void Toggle() {..
인터페이스 분리 원칙(Interface segregation principle)클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게함시스템의 내부 의존성을 약화하고 유연성을 강화public interface IUnitStats{ public float Health { get; set; } public int Defense { get; set; } public void Die(); public void TakeDamage(); public void RestoreHealth(); public float MoveSpeed { get; set; } pu..