프로젝트를 진행하다보니 특정 에셋을 자주 찾아보게 되었습니다. 북마크를 이용해서 즐겨찾기 하는 방식으로 할 수 있지만 이번 시간에는 에디터 기능을 이용해서 상단 버튼을 누르면 해당 에셋에 접근할 수 있는 방법에 대해 알아보고자 합니다. 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 프로젝트를 시작하는 데 필요한 초기 단계를 설명합니..
슬로건: XREAL 6기 해커톤의 주제는 "XR 대중화 - 현재 일반 유저들의 일상의 한 부분을 완전히 대체할 수 있는 서비스"였습니다. 여러분은 일반 유저들의 일상을 대체할 수 있는 XR 서비스에는 무엇이 있다고 생각하시나요? 저는 주제를 보자마자 아이언맨의 안경이 떠올랐습니다 ㅋㅋ 저는 그래서 팀 빌딩하는 시간에 제가 생각했던 주제와 가장 비슷한 팀을 찾았고 HUD 기반으로 팀을 꾸리신 분이 있길래 해당 팀에 합류했습니다. 그러나 ㅠㅠ 뽑기 운이 없었는지 저희 팀의 Track은 "신체적 정신적 건강 관리"가 걸리게 되어... 주제를 바꿀 수 밖에 없었습니다. 어쩔 수 없이 저희팀은 Track에 맞게 아이디어를 생각해 봤고 가장 호응이 좋았던 'AR환경에서의 자세 교정 및 건강 관리 어플리케이션'을 제..
XREAL만의 해커톤! XREAL 5기에서는 서울대학교 병원 융합의학기술원과 공동 개최하여 서울대학교 융합의학기술원 소속 의대생들과 함께 총 상금 175만 원의 규모로'/XR 기술을 활용해 함께 그려보는 어린이 환자케어의 미래/'를 주제로 해커톤이 개최되었습니다. 그 어느곳에서 서울대학교 병원 융합의학기술원과 해커톤을 할 수 있겠습니까! XREAL 뿐입니다 후후... XREAL이 궁금하시다고요? 아래 링크를 눌러주세요. Join Us 🌟XREAL은 세계 최고의 XR 중심 메타버스 연구 및 창업 네트워크🌐가 되고자 합니다.www.xreal.info 해커톤 결과XREAL 5기 'XR 기술을 활용해 함께 그려보는 어린이 환자케어의 미래/'를 주제로 해커톤에는 [장기 입원 아동 환자를 위한 블록코딩 기반..
너무 늦게 4기 해커톤에 대해서 작성하려고 하니... 남아 있는 자료가 너무 없어서 텍스트로만 간단하게 작성하고자 합니다. XREAL 4기 해커톤의 주제는 "What the Metaverse Era Needs"입니다. 4기 해커톤에서는 메타버스의 발전과 이를 둘러싼 다양한 기술, 서비스, 콘텐츠 등에 대한 아이디어와 솔루션을 모색하는 데 초점을 맞추고 있습니다. 예를 들면 다음과 같은 주제가 나올 수 있습니다. 메타버스 내의 사용자 경험 개선: 사용자 인터페이스, 사용자 인터랙션, 몰입형 경험 등. 저희 팀은 We Need Skill이라는 팀명을 가지고 사용자의 모션을 보정해주는 시스템을 제작하고자 기획했습니다. 소드아트온라인 덕후라면 뭔지 대충 감이 오실 겁니다. 소드아트온라인에는 소드 스킬이라는게..
AnimationEvent란?AnimationEvent는 애니메이션 시스템에서 애니메이션의 특정 시점에 스크립트 함수 호출을 트리거하는 데 사용됩니다. AnimationEvent를 통해 애니메이션의 특정 프레임에서 스크립트 함수가 실행되도록 할 수 있습니다. AnimationEvent는 스크립트상으로 작성할 수도 있지만 위와 같이 설정하고 사용할 수도 있습니다. AnimationEvent (스크립트)사용 방법using UnityEngine;public class AnimationManager : MonoBehaviour{ public Animator animator; public AnimationClip animationClip; private void Start() { ..
Git KimJinWooDa - OverviewKimJinWooDa has 8 repositories available. Follow their code on GitHub.github.com 유튜브 진우의 혼잣말하는 유튜브아주대 최고 VR 박사(가 되고 싶은) 나의 혼잣말 하는 영상 모음 아주대학교 VR 친구 구해요~ 티스토리 맞팔해용 - https://wlsdn629.tistory.com/ 인스타 : kimjinwoo_vrwww.youtube.com
한 줄 요약ExecuteInEditMode는 에디터 모드에서만 실행되므로 편집 중 객체의 변화를 즉시 반영하고 싶을 때 사용합니다.ExecuteAlways는 에디터 모드와 플레이 모드 모두에서 스크립트가 실행되어야 할 때 사용합니다. ExecuteInEditModeusing UnityEngine;[ExecuteInEditMode]public class ExampleInEditMode : MonoBehaviour{ private void Update() { Debug.Log("Update called in Edit Mode"); }} ExecuteInEditMode는 스크립트가 에디터 모드에서도 실행되도록 합니다. 즉, 게임을 실행시키지 않더라도 에디터 모드에서 스크립트의 U..
유니티에서도 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..
삼각형 그래프를 그리고 싶었는데 LineRender는 잘 안되고...어쩔 수 없이 Mesh를 활용해서 삼각형 그래프를 그려보는 방식으로 시도해봤습니다. 결과는 아래 움짤과 같이 잘 작동하나 코드에 문제가 있을 수 있으니.. 조심히 사용하시길 바랍니다. 코드using System.Collections.Generic;using UnityEngine;namespace IslandMonkey{ [RequireComponent(typeof(MeshFilter))] [RequireComponent(typeof(MeshRenderer))]#if UNITY_EDITOR [ExecuteAlways]#endif public class PieChartOutline : MonoBehaviour {..
RefreshShownValue란?RefreshShownValue() 함수는 'TMP_Dropdown 컴포넌트'에서 사용되는 함수입니다. RefreshShownValue 함수는 드롭다운 메뉴 값을 갱신하여 현재 선택된 값을 표시합니다. 이 함수를 호출하면 드롭다운의 표시가 변경되어 현재 선택된 값을 나타낼 수 있습니다. 사용 예를 들어. 사용자가 게임 설정에서 그래픽 품질을 변경하는 드롭다운 메뉴가 있다고 가정해 보겠습니다. 사용자가 새로운 품질 수준을 선택하면 이를 즉시 반영하여 드롭다운 버튼에 표시할 때 사용하면 됩니다.