using System;using UnityEngine;[RequireComponent(typeof(CapsuleCollider), typeof(Rigidbody))]public class SimpleOVRMovement : MonoBehaviour{ public bool EnableLinearMovement = true; public bool HMDRotatesPlayer = true; public float RotationAngle = 45.0f; public float Speed = 0.0f; public OVRCameraRig CameraRig; private bool ReadyToSnapTurn; private Rigidbody rigidbody; pr..
유니티 Odin InspectorOdin Inspector란? 오딘 인스펙터는 커스텀 에디터 코드를 한 줄도 작성하지 않고도 강력하고 사용자 친화적인 커스터마이징 에디터의 모든 워크플로 이점을 누릴 수 있는 Unity용 플러그인입니다.wlsdn629.tistory.comShowIf 어트리뷰트는 오딘 인스펙터에 있는 기능이긴 합니다.ShowIf 어트리뷰트를 사용하면 특정 컴포넌트의 조건에 따라 특정 필드를 보이게 할지 말 지를 컨트롤 할 수 있습니다. 저는 ShowIf 어트리뷰트를 응용해서 ShowIfComponent 어트리뷰트를 만들어보았습니다.ShowIfComponent 어트리뷰트를 사용하면 특정 컴포넌트를 가지고 있을 때에만 해당 필드가 보여지게 할 수 있습니다.ShowIfComponent Attri..
이번 10분 콘테스트 출품작인 '러너스'입니다 !그 누구도 깰 수 없는 극강의 어른용 타자게임 .. 한 번씩 플레이 해보시고 솔직한 리뷰 남겨주시면 감사드리겠습니다! 만들래 - 인디게임 팀빌딩, 게임 개발팀 만들기인디 게임 개발의 시작 - 인디게임 팀빌딩, 게임 개발팀 만들기mandlemandle.com
자주 사용하는 함수- DoRestart : 트윈을 처음부터 다시 시작- DoRewind : 트윈을 거꾸로 재생하여 처음 상태로 되돌림두 개의 함수를 이용해서 주로 UI 애니메이션 만들곤 함. 함수 이름 설명 DOComplete()트윈을 즉시 완료 상태로 만듭니다. 트윈이 바로 끝나고 완료 콜백이 호출됩니다.DOKill()트윈을 즉시 중지하고, 관련된 모든 리소스를 해제합니다.DOKillById(string id)지정된 ID를 가진 트윈만 중지하고, 관련된 리소스를 해제합니다.DOPause()트윈을 일시 중지합니다.DOPauseAllById(string id)지정된 ID를 가진 모든 트윈을 일시 중지합니다.DOPlay()트윈을 재생합니다.DOPlayById(string id)지정된 ID를 가진 트윈만..
TextMeshPro-Text (UI) 컴포넌트는 Text Input에 태그를 이용해서 Text를 꾸밀 수 있다는 것을 알고 계시나요?이번 포스팅에서는 TextMeshPro-Text (UI)에 사용할 수 있는 태그 몇 가지와 사용 방법에 대해서 말해보겠습니다. 텍스트 스타일 관련 태그 태그 설명 사용 예시 텍스트를 굵게 표시Bold Text텍스트를 기울임체로 표시Italic Text텍스트에 밑줄을 그림Underlined Text텍스트 색상 및 크기 관련 태그 태그 설명 사용 예시 텍스트 색상을 지정 (HEX 코드 사용 가능)Red Text텍스트 크기를 지정Large Text텍스트에 하이라이트(배경색)을 지정Highlighted Text 다음은 이쁜 색상 (계열)을 가져와봤습니다. 색상 이름 H..
라이팅 세팅에 가시면 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간단한 퀴즈 게임 ..
현재 개발중인 프로젝트는 Fusion2을 이용한 게임을 제작하고 있습니다.Effect와 같이 자주 사용되는 오브젝트를 Pooling을 이용해서 관리하고자 했습니다. 처음에는 Effect같은 객체는 반드시 NetworkObject로 관리해야 하는 줄 알았으나, On/Off 시점만 동기화가 되면 된다는 것을 깨달았습니다. 그래서 Pool자체는 NGO을 관리하는 것이 아닌 Unity GameObject을 관리하도록 만들었습니다. Pool System은 크게 Init, Add, Get, Return 이렇게 나뉜다고 생각합니다. RPC을 이용할 때 Init과 Add, Return은 문제가 없었으나 Get이 문제였습니다.왜냐하면 Init과 Add, Return은 void함수였지만 Get은 return Type이 존..
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와 Steam까지 출시해버렸습니다.. Steam은 8월2일에 올라오고 Meta는 이미 출시가 된 상태입니다. 이 게임이 저의 모든 정수가 담겨 있다 말하긴 그렇지만, 그래도 짧은 기간동안 가격대비 괜찮은 게임을 제작해봤으니 한 번씩 플레이해보고 후기를 남겨주시면 너무 감사하겠습니다. Meta Quest의 Dark Prison 7th | Quest VR 게임 www.meta.com Dark Prison 7th on SteamYou are trapped alone in a mysterious prison. After carefully examining your surroundings, you ..
게임을 제작하고 스토어에 출시를 하려면 무엇을 해야할까요? 바로 빌드입니다.빌드를 하고 출시하면 전부 끝일까요? 물론 끝일 수도 있지만 예상치 못한 버그 픽스로 인해 다시 빌드하는 경우도 생기곤 합니다. 여러분도 아시겠지만 빌드하는데 걸리는 시간이 그리 짧지는 않은데요. 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..