본문 바로가기

Project17

[METAVERSE EXPO 2024] 4-1 프로젝트 부스 참여 후기 현재 진행 중인 서울시 지원 뉴딜일자리사업 XR Unity 개발자 육성 과정 중METAVERSE EXPO 2024에 부스로 참여하게 되었다.   엑스포 D - 1!이 날 팀 현수막을 받았는데, 어두운 분위기에 맞게 디자인하였더니(인쇄물이라는 것을 고려하지 못하고)너무 어두워서 정말 아무것도 보이지 않았다..😢😢 너무 속상했지만 좌절하지 않고 팀원들과 사비를 들여 새로운 현수막을 주문하여 둘째 날 오후부터 사용하였다. D - day첫날은 네트워크 문제가 있어 시연을 거의 하지 못하였다. 멀티플레이 게임이었기 때문에, 네트워크가 조금이라도 느려진다면 동기화가 어긋나서 제대로 된 플레이가 되지 않았다😢😢 하지만 가기 전부터 엑스포 가면 첫날은 거의 시연 못 할 것이라는 말을 계속해서 들어왔기 때문에현수.. 2024. 7. 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 .. 2024. 7. 19.
[문제해결/PJ] PhotonNetwork를 이용하여 Photonview로 멀티 플레이어 캐릭터 커스터마이징 적용하기 네트워크 상에서 각 플레이어들의 커스터마이징을 적용시키기 위해 SetCustomProperties를 사용하였다. 하지만 계속해서 캐릭터 더미들이 남거나 연동되지 않는 문제거 발생하였고, 모든 부분을 차근차근 디버그를 찍어보며 확인하였다. 하지만 모든 기능은 잘 작동하였고, 문제를 고민해보다 생각난 것이 어떠한 photonView를 참조하는가???이다. ‼문제 발견참조하는 photonView가 원하던 대상인지 살펴보자.처음에 기능을 기존에 존재하던 커스텀 프로퍼티와 같은 메서드에 넣었는데, 해당 photonView는 canvas가 대상으로 되어있었다. 당시에는 photonView의 원리를 제대로 이해하지 못하여 실수하였다. ‼해결 방법해당 기능을 적용 할 대상인 player prefab의 PlayerCon.. 2024. 6. 18.
[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를 추가해 준다. 이는.. 2024. 6. 5.
[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 .. 2024. 6. 2.
[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.. 2024. 6. 2.