본문 바로가기
728x90

전체 글239

[문제해결/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.
[Unity/문제해결] URP 추가 light 보이게 하기 URP 환경에서는 기본적인 Directional Light를 제외한 light들은 실시간으로 보여주도록 세팅이 되어있지 않다.  이를 보이게 하고 싶다면1) Project Settings - Graphics의 Scriptable Render Pipeline Setting에 할당된 에셋 클릭2) Project에서 선택된 셋팅 에셋을 클릭하여 Inspector에 띄운다3) Lighting - Additional Lights - Per Pixel로 설정하면 추가 라이트도 보인다. 2024. 6. 2.
[Unity/XR] Meta Quest를 위한 VR 환경 만들기 VR core로 프로젝트 생성 meta SDK는 최신 기능 가능, 하지만 부자연스러움Unity SDK는 자연스럽지만 최신 기능 업뎃 늦음  xr 환경 플레이어  리얼스케일 프로젝트에서 device 주로 사용 설정 버튼을 눌러 select preset 불러오기  잡아야하는 물체 설정  기기 없어도 XR Device Simulator import  원하는 부분만 잡으려면해당 콜라이더 미리 넣어주기 두 손으로 잡고 싶을 때 (총 등...) 잡았을 때 포지션 설정z축이 앞쪽으로 향하도록 감도?조절 행동을 한 순간 함수 호출  멀리있는 물체가 나에게 다가오는 기능 조이스틱으로 잡은 오브젝트 이동, 회전물체를 조이스틱의 회전으로 회전시키기 손(컨트롤러)부착 위치 ray 선 위치  컨트롤러에서 일어나는 이벤트컨트롤러.. 2024. 6. 2.
[Visual Studio] NuGet Json 패키지 설치하기 in Windows 빠른 시작: Visual Studio에서 NuGet 패키지 설치 및 사용(Windows에만 해당) | Microsoft Learn 빠른 시작: Visual Studio에서 NuGet 패키지 설치 및 사용(Windows에만 해당)이 빠른 시작에서는 Windows용 Visual Studio 프로젝트에서 NuGet 패키지를 설치하고 사용하는 방법을 알아봅니다.learn.microsoft.com Visual Studio Community 화면입니다.  1) 도구 - NuGet 패키지 관리자 - 솔루션용 NuGet 패키지 관리...  2) 찾아보기 - json 검색 - Newtonsoft.Json 선택 3) 프로젝트 모두 선택  후 설치 4) 적용 5) 완료된 모습 2024. 5. 31.
[UGS] Unity Cloud 프로젝트 생성 프로젝트 생성 시 Connect to Unity Cloud 선택 연결된 모습 Authentication install 하기  Go to Dashboard 로그인 Get started 시작 완료 Setting 생성됨 2024. 5. 31.
[Unity/문제해결] OnBecameVisible 작동 문제 OnBecameVisible는 부착된 오브젝트를 기준으로 작동한다. 따라서 부착된 오브젝트에 렌더러가 있어야 작동함 보통 부모로 빈 오브젝트를 기반으로 오브젝트를 생성하기 때문에 이런 문제를 겪은 듯 하다.  [렌더러가 없어서 작동 안함]  [렌더러가 있는 자식 오브젝트에 붙여보니 정상적으로 작동]  또한 모든 카메라를 대상으로 체크하기 때문에, Player의 MainCamera 뿐만 아니라Scene을 비추는 화면 또한 해당 오브젝트를 비추면 작동하지 않는다. 2024. 5. 24.
[전시/소마미술관] 서울올림픽 35주년 기념전 : Futuredays: One is All, All is One 관람 후기 요즘 XR과 접목시키는 전시들이 점점 많아지는 추세이다. 이번에 가게 된 전시는 소마미술관의 전시이다. XR 전시가 많아지기는 했어도, 어린 연령대를 대상으로 하거나 단순한 체험이 아닌 예술로서의 전시를 관람하고 싶어 기대가 매우 컸다. 특히나 크리에이티브 아트 그룹이라고 하는 퓨쳐데이즈라는 그룹이 있다는 점이 인상 깊었다. https://soma.kspo.or.kr/dspy/display/211 [소마미술관 전시] 서울올림픽 35주년 기념전 : Futuredays: One is All, All is One 기간 : 2023.09.15 ~ 2024.02.18 soma.kspo.or.kr 관람 좀 더 실감 나는 경험을 위하여 홀로렌즈로 전시를 체험할 수 있는 AR글라스 티켓으로 예매하여 방문하였다. 하지만.. 2023. 12. 26.
[C++] C에서 C++으로, 이것이 C++이다 취업 전까지 C++을 개념이라도 공부해 보자!라는 생각으로 일단 빠르게 서점을 가 입문서를 구매하였다. 여러 책을 둘러보다가 가 C를 배웠던 나에게 적합한 듯 보여 선택하게 되었다. 사실, C#을 배우면서 객체지향 언어라는 것을 강제로 주입한 느낌이 컸는데, 이 책의 1장에서 세탁소에 비유한 내용이 객체지향 언어를 확 와닿게 해 주었다. 점점 다양한 언어를 배워가며 느끼지만, 언어를 새롭게 배울 때 새롭게 배우는 언어를 기존의 언어의 개념을 가져와 정확하게 번역하려 하면 오히려 힘들다고 생각한다. 외국어를 배울 때도 각 언어만의 고유한 의미가 온전히 번역하기 어렵듯이, 컴퓨터 언어도 비슷하다고 느껴졌다. 1장 C와는 다른 C++ 1. 표준 헤더 파일들은 .h 확장명 생략 #include //C의 stdi.. 2023. 11. 21.
[CS : 디자인패턴] 팩토리(Factory)패턴 객체 생성 부분을 추상화한 팩토리(Factory) 패턴. 전의 프로젝트에서 추상팩토리 패턴을 활용하였는데, 팩토리 패턴을 공부하고 추상팩토리패턴과는 어떻게 다른지 알아보겠다. 팩토리(Factory) 패턴 상속 관계의 두 클래스에서 상위 클래스에서 중요한 뼈대를 결정, 하위 클래스에서 객체 생성에 관한 디테일 결정하는 패턴 1. 느슨한 결합 2. 유연성 ↑ 3. 유지보수성 ↑ ChatGPT에게 팩토리 패턴을 물어보니 1. 간단한 팩토리 패턴 2. 팩토리 메서드 패턴 3. 추상 팩토리 패턴 으로 나누어 예제를 알려주었다. 1. 간단한 팩토리 패턴 using UnityEngine; // 무기의 베이스 클래스 public abstract class Weapon { public abstract void Fire(.. 2023. 11. 16.
728x90