}
라이팅 세팅에 가시면 Environment Lighting이라는 부분에 존재합니다.여기에서 Intensity Multiplier를 조절하시면 됩니다.
Global Param을 사용하는 이유 Global Param을 사용하지 않고 다국어를 번역하게 될 경우 글씨 위치가 맞지 않아 불편함을 겪게 됩니다. 예를 들면 아래와 같습니다. [한국어의 경우] 발견된 이상 개수 : 7[영어의 경우 ] Total Number Of Anomalies : 7 위와 같이 글씨 위치가 맞지 않게 되는 문제가 있었습니다. 그래서 7의 경우 발견된 이상 현상의 개수이므로 해당 Value를 Param으로 지정해주었습니다. Param을 컨트롤 하는 방법은 Local과 Global이 있습니다.Local로 Param 컨트롤하기Local의 경우 위와 같이 미리 컴포넌트를 이용해서 특정 Param을 컨트롤 할 수 있습니다. Global로 P..
22년도에 Pool System에 대해서 언급한적이 있습니다. Pooling에 관한 내용은 아래 포스팅에 작성했으니 참고하시면 되겠습니다. 이때 소개한 Pool의 경우 하나의 오브젝트에 대해서만 관리할 수 있다는 단점이 있었습니다. Unity Pooling System (최적화 구웃!)Pooling이란? Unity의 풀링 시스템은 런타임 중에 게임 오브젝트를 효율적으로 관리하고 재사용하는 데 사용되는 기술로, 특히 총알, 적, 파티클과 같은 오브젝트를 자주 생성하고 소멸해야 할 때wlsdn629.tistory.com 이번 시간에는 Dictionary를 활용해서 하나의 오브젝트에 대해서만 관리하는 것이 아닌 2개 이상의 오브젝트를 관리할 수 있는 방법과 활용 방법에 대해 알아보겠습니다. 제목에서도 알 수 ..
Sample Name Host Mode SharedMode Description Study Focus Asteroids SimpleYesNo간단한 아케이드 스타일의 게임 샘플. 네트워킹과 동기화의 기본을 배우기 적합.기본적인 네트워킹 개념, 동기화, 및 객체 이동 동기화를 학습하는 데 적합.Simple FPSYesNo기본적인 1인칭 슈팅 게임 샘플. FPS 게임에서의 네트워크 동기화와 레이턴시 처리 예시.FPS 장르의 캐릭터 컨트롤, 발사체 및 상호작용의 네트워크 처리 학습에 유용.Razor MadnessYesNo레이싱 게임 스타일의 샘플. 차량 물리와 동기화 메커니즘 학습.차량 물리 및 동기화 알고리즘, 레이싱 게임의 네트워크 처리 학습에 적합.Quiz NetworkYesYes간단한 퀴즈 게임 ..
SensorToolkit 2이란? Sensor Toolkit2는 Raycasts, Overlaps 등의 기능을 활용하여 2D와 3D 환경에서 다양한 감지(Detection) 동작을 쉽게 구현할 수 있게 도와주는 에셋입니다.센서(Sensor) 컴포넌트를 통해 복잡한 감지 및 AI 행동을 구현할 수 있으며, 성능 최적화가 잘 되어 있다는 것이 특징입니다. 다양한 필터링 옵션과 편집기 내 테스트 기능을 존재하여 빠르게 디버깅 및 테스트 할 수 있어 효율적으로 개발을 할 수 있습니다.센서와 신호란?Sensor Toolkit2에는 핵심 단어가 존재합니다. '센서', '신호'. 두 핵심 단어에 대해서 알아보겠습니다. 센서란?특정 조건에 따라 객체를 감지할 수 있게 도와주는 컴포넌트 입니다. 센서에는 아래와 같은 종..
Meta Quest Developer Hub를 사용해서 첫 번째 apk를 빌드할 때는 아무 문제가 없었습니다.하지만 두 번째 apk를 빌드하려니 설정 건든 것도 없는데 아래 사진과 같은 말도 안되는 에러가 발생하면서 빌드가 계속 실패됐습니다. 위 사진들을 보면 아시겠지만 설정은 아무 문제가 없습니다.그냥 Meta Quest Developer Hub버그인듯 합니다.. 그래서 어떻게 해결했냐?Meta Quest Developer Hub를 사용하지 않고 ovr-platform-util를 사용했습니다.ovr-platform-util 사용방법Meta Quest Developer Hub를 사용하면 버튼 딸-깍이라 편하지만 버그가 너무 많네요...ovr-platform-util를 사용하면 값을 타이핑해야하는 번거..
게임을 제작하고 스토어에 출시를 하려면 무엇을 해야할까요? 바로 빌드입니다.빌드를 하고 출시하면 전부 끝일까요? 물론 끝일 수도 있지만 예상치 못한 버그 픽스로 인해 다시 빌드하는 경우도 생기곤 합니다. 여러분도 아시겠지만 빌드하는데 걸리는 시간이 그리 짧지는 않은데요. Meta SDK에서는 빌드 반복 과정을 빠르게 도와주는 OVR Build APK라는 Tool이 존재합니다.OVR Build APK외에도 OVR Quick Scene Preview라는 Tool도 존재하지만 이번 시간에는 OVR Build APK에 대해서만 알아보고자 합니다. OVR Build APK Tool을 사용하기 위해서는 Meta XR Core SDK를 임포트 하셔야 합니다. OVR Build APK Tool이란?OVR Build A..
APK 설치 위치는 auto(android:installLocation in AndroidManifest.xml)여야 합니다.APK 화면 방향이 가로가 아닙니다(AndroidManifest.xml의 android:screenOrientation).빌드를 하는데 자꾸 위와 같은 에러가 계속 발생해서 거의 며칠간 끙끙 앓았네요.... APK 설치 위치는 auto(android:installLocation in AndroidManifest.xml)여야 합니다. 해결하기 모바일 - Ohter Settings 탭에 Install Location을 Automatic으로 해줍니다. APK 화면 방향이 가로가 아닙니다(AndroidManifest.xml의 android:screenOrientation). 해결하기 R..
프로젝트를 진행하다보니 특정 에셋을 자주 찾아보게 되었습니다. 북마크를 이용해서 즐겨찾기 하는 방식으로 할 수 있지만 이번 시간에는 에디터 기능을 이용해서 상단 버튼을 누르면 해당 에셋에 접근할 수 있는 방법에 대해 알아보고자 합니다. Selection.activeObject 활용하기Selection.activeObject는 에디터 내에서(현재 찾고자 하는) 선택된 오브젝트를 나타냅니다. Selection.activeObject를 사용하는 방법은 매우 간단합니다. 먼저 UnityEditor 네임스페이스를 사용해야 하며, 그 다음 특정 오브젝트를 선택하려면 Selection.activeObject에 해당 오브젝트를 할당하면 됩니다.using UnityEditor;using UnityEngine;publi..
Fusion2란?Fusion2는 Photon의 차세대 네트워크 엔진으로, 서버 모드, 호스트 모드, 공유 모드 등 다양한 네트워크 토폴로지를 지원합니다. 모드 특징 사용 사례 서버 모드전용 서버, 공용 IP, 높은 안정성, 보안성대규모 멀티플레이어 온라인 게임호스트 모드호스트 플레이어, 간편한 설정소규모 협동 게임공유 모드클라우드 룸, StateAuthority다양한 디바이스와 네트워크 환경 지원 Fusion2의 주요 기능으로는 네트워크 객체 동기화, 입력 동기화, 네트워크 이벤트 처리, 유연한 Room 관리 등이 있습니다. Fusion2 시작하기 Fusion 2 1 - 시작하기 | Photon EngineFusion 공유 모드 기초는 Fusion 프로젝트를 시작하는 데 필요한 초기 단계를 설명합니..
유니티에서도 Grid Layout Group 컴포넌트가 존재하긴 합니다. 하지만 해당 컴포넌트를 사용하면 각 행과 열의 Element이 Grid 형태에서 벗어나지 못한다는 문제가 있습니다(뭔 소리야 ㅋㅋ..그러려고 Grid Layout Group 컴포넌트 쓰는건데!) 워워... 그 뜻이 아니라 Grid란 사전 의미를 찾아보면 다음과 같습니다.수평선과 수직선이 교차해서 이루어진 집합체이다. 하나의 집합체는 세로 열을 그리고 다른 하나는 가로 행을 정의합니다. 각 요소는 이러한 열과 행으로 된 라인으로 배치할 수 있다. 즉, 위와 같은 조건을 충족만 하면 Grid라 할 수 있는거죠. 유니티의 Grid Layout Group 컴포넌트는 Grid 조건을 만족하지만 정해져 있는 모습을 벗어나지 못한다는 점입니다...
record 변수란?record는 C# 9.0에서 도입된 새로운 데이터 구조입니다. 주로 불변(immutable) 데이터 구조를 정의하는 데 사용되며, 값 기반 비교와 복사 기능이 내장되어 있습니다. record는 클래스와 비슷하지만, 데이터 저장 및 관리를 더 간편하게 해줍니다.클래스(Class)와의 차이점 불변성(Immutable)record는 기본적으로 불변 객체로 사용되므로 생성된 이후에는 객체의 상태를 변경할 수 없습니다.반면에 클래스는 가변 객체로, 생성 후에도 상태를 변경할 수 있습니다. 값 기반 비교record는 객체의 참조가 아닌 값을 기반으로 비교하므로 두 개의 record 객체가 동일한 값을 가지면 같은 것으로 간주됩니다.클래스는 참조 기반 비교를 사용합니다. 즉, 두 객체가 동일한 ..
게임을 제작하다 보면 재화의 수치가 급격하게 커져서 100,000 / 1,000,000 이런식으로 표기하는게 점점 어려워 집니다.위와 같이 수를 그냥 나열하는 방식이라면 1억이라는 데미지를 어떻게 표현할까요...(메이플에선 그냥 표기하기도 하던데 저는,,, 1억 5천만! 이런식으로 보여지는게 편하더라고요) 그래서 대다수의 게임은 큰 수의 경우 수를 알파벳으로 치환해서 표기하곤 합니다.예를 들어 10,000 이라는 수치는 10a로 표기하거나, 10,000a 라는 수치는 10b 이런식으로 치환해서 사용하곤 합니다. 위와 같은 방식의 장점은 수가 커져도 어느정도 커버가 가능하다는 것이며, 알파벳이 높아질 수록 사용자는 더 쎄지는 기분을 직관적으로 받을 수 있습니다.표기되는 모습 저는 소수점 셋 째 자리까지 표..
I2Localization에 대해서 모르시는 분은 아래 포스팅을 참고해 주세요. 유니티 가장 강력한 번역도구 I2 Localization을 소개합니다!I2 Localization란? Unity에서 사용할 수 있는 번역 시스템입니다. UI, 2D, TextMesh Pro와 같은 주요 컴포넌트들에 사용가능하며 개발자가 다양한 플랫폼(PC, 모바일 등)에서 로컬화(번역)된 경험을 제공할wlsdn629.tistory.com I2Localization 번역을 사용하기 위해서는 이전 작업을 하고 오셔야 합니다.아래 포스팅을 참고해 주세요. 유니티 I2Localization #Google Spreadsheet 연동하기예전에 번역을 도와주는 에셋에 대해 소개드린적이 있었습니다. 설명이 부족한 것 같아 I2Localiz..
예전에 번역을 도와주는 에셋에 대해 소개드린적이 있었습니다. 설명이 부족한 것 같아 I2Localization 에셋 사용방법에 대해 조금씩 올려보고자 합니다. 유니티 가장 강력한 번역도구 I2 Localization을 소개합니다!I2 Localization란? Unity에서 사용할 수 있는 번역 시스템입니다. UI, 2D, TextMesh Pro와 같은 주요 컴포넌트들에 사용가능하며 개발자가 다양한 플랫폼(PC, 모바일 등)에서 로컬화(번역)된 경험을 제공할wlsdn629.tistory.com 이번 포스팅에서는 Google Spreadsheet 연동하는 방법에 대해서 알아보고자 합니다.Google Spreadsheet 연동하기 Source 컴포넌트를 보면 SpreadSheet 탭이 존재합니다. Spre..