전체 글 315

[Unity/UGS] Remote Config 활용하기

Remote Config는 데이터 값을 UGS 페이지 상에서 바로 쉽게 변경하는 기능이다. 자주 변하는 데이터를 활용하면 개발자가 아닌 사람에게 굉장히 쉽고 직관적으로 다가올 것이라 생각된다.  Install unity에서 관리  Add Keypublishpublish 등록한 key 보임바꾸고 push 바뀐 모습 Dashboard에서 바꿈using System.Collections;using System.Collections.Generic;using System.Threading.Tasks;using Unity.Services.Authentication;using Unity.Services.Core;using Unity.Services.RemoteConfig;using UnityEngine;public ..

Unity/수업내용 2024.07.19

[Unity/프로파일링] 프로파일러들

플레이모드Timeline 점유율Hierarchy 일반 프로파일러 마커 - Unity 매뉴얼 (unity3d.com) 일반 프로파일러 마커 - Unity 매뉴얼Unity의 코드는 애플리케이션에서 시간을 소비하는 항목에 대한 인사이트를 제공하는 수많은 프로파일러 마커로 계측됩니다. 다음 표에는 몇 가지 일반적인 마커에 대한 설명이 나와 있습니다.docs.unity3d.com  오큘러스 Metrics오큘러스 어플 내에서 프로파일링 가능Downloads - OVR Metrics Tool (oculus.com) Oculus Developer Center | Downloads developer.oculus.com 메모리 상세 프로파일러일반 프로파일러에서도 메모리 항목이 있지만, 상세히 분석하려면 메모리 프로파일러 ..

Unity/수업내용 2024.07.19

[RestAPI]공공데이터 OpenAPI 데이터 활용하기

공공데이터포털 (data.go.kr) 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr 공공데이터 포털에 가입하여 OpenAPI를 활용신청하면 데이터를 활용할 수 있는 인증키와 기술 문서를 받을 수 있다. 수업 전 주에 신청하는 것을 잊고 수업 5분 전쯤 신청하였는데 1분도 안되어서 승인받았다..! 요즘 심각하던 대기오염정보를 신청하였다.  위에서 활용할 정보 기능에 맞추어 기술 문서를 보며 스크립트를 작성하면 된다. 기술 문서에는 위의 5가지 정보만 나온 것이 아니라 항목을 잘 살펴보고 맞는 정보를 활용하면 된다.  예시..

Unity/수업내용 2024.07.19

[문제해결/PJ] PhotonView Character Customizing 동기화 문제2

전에 올렸던 해결 방법에서 또 다른 문제가 발생하여 Photon 프로토콜에 대하여 공부해 보았다.  현재 문제 대상인 Player prefab은 포톤 서버가 연결된 후에 커스텀을 변경시켜야 한다. 이렇게 씬에 배치된 동적인 오브젝트를 변경시켜야 할 때는 IPunObservable를 상속받아 정보를 전달해 주어야 한다고 한다.  using ExitGames.Client.Photon;using ExitGames.Client.Photon.StructWrapping;using Photon.Pun;using Photon.Realtime;using SeongMin;using System.Collections;using System.Collections.Generic;using System.Drawing;using ..

[문제해결/PJ] PhotonNetwork를 이용하여 Photonview로 멀티 플레이어 캐릭터 커스터마이징 적용하기

네트워크 상에서 각 플레이어들의 커스터마이징을 적용시키기 위해 SetCustomProperties를 사용하였다. 하지만 계속해서 캐릭터 더미들이 남거나 연동되지 않는 문제거 발생하였고, 모든 부분을 차근차근 디버그를 찍어보며 확인하였다. 하지만 모든 기능은 잘 작동하였고, 문제를 고민해보다 생각난 것이 어떠한 photonView를 참조하는가???이다. ‼문제 발견참조하는 photonView가 원하던 대상인지 살펴보자.처음에 기능을 기존에 존재하던 커스텀 프로퍼티와 같은 메서드에 넣었는데, 해당 photonView는 canvas가 대상으로 되어있었다. 당시에는 photonView의 원리를 제대로 이해하지 못하여 실수하였다. ‼해결 방법해당 기능을 적용 할 대상인 player prefab의 PlayerCon..

[PJ] VR 환경에서 UI Camera 만들기 in URP

VR 환경에서는 Canvas가 WorldSpace에 위치한다. 그 때문에 아래 사진과 같이 플레이어가 자유롭게 이동하고 시야를 움직일 때 UI가 Object에 파묻히는 경우들이 생긴다.   1) MainCamera의 자식으로 Canvas와 UICamera를 둔다. 이때, UICamera는 Render Type을 Overlay로 바꾼다.  2) Layer를 새로 만들어 만들었던 Canvas에 설정해 준다. 예시로는 PlayerUI를 만들어 설정해주었다.  3) MainCamera의 Rendering - Culling Mask에서 PlayerUI를 제외한다. UICamera에는 PlayerUI만 선택해준다. 4) MainCamera로 돌아가, Stack의 Cameras에 UICamera를 추가해 준다. 이는..

[PJ] EventDispatcher 사용하기

전의 프로젝트에서 EventManager를 사용하다, 점점 늘어나는 이벤트에 누락되거나 충돌하는 경우들이 생겨 EventDispatcher를 사용하였다.  이번 프로젝트는 네트워크 프로젝트라 더더욱 이벤트가 중요할 것이라 생각하여 다시 공부하였다.  EventDispatcher Scriptusing System;using System.Collections.Generic;using UnityEngine;public delegate void EventHandler(short type);public delegate void EventHandler(short type, T data);public class EventDispatcher{ public static readonly EventDispatcher ..

[PJ/디자인패턴] Observer 패턴과 간단한 CharacterCustom

심플한 캐릭터 커스터마이징을 이번에는 Observer 패턴으로 구현해 보기로 하였다. Observer패턴은 주체가 되는 Subject와 그를 관찰하는 Observer로 이루어져 있다. 보통 예시들을 보면 주체에 변화가 있을 때, 이를 UI로 전달하는 것들이 많다. 하지만, 캐릭터 커스터마이징은 UI로 선택한 것을 캐릭터가 전달받아 보여주기 때문에, Subject를 Character, Observer를 UI로 설정하게 되었다.  이미 다른 기능을 하던 객체에 해당 기능을 추가했기 때문에 interface로 상속하였다.  Observer - CustomPlayerusing System.Collections;using System.Collections.Generic;using UnityEngine;namesp..