Unity 64

[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..

[Unity/문제해결] URP 추가 light 보이게 하기

URP 환경에서는 기본적인 Directional Light를 제외한 light들은 실시간으로 보여주도록 세팅이 되어있지 않다.  이를 보이게 하고 싶다면1) Project Settings - Graphics의 Scriptable Render Pipeline Setting에 할당된 에셋 클릭2) Project에서 선택된 셋팅 에셋을 클릭하여 Inspector에 띄운다3) Lighting - Additional Lights - Per Pixel로 설정하면 추가 라이트도 보인다.

C#/문제해결 2024.06.02

[Unity/XR] Meta Quest를 위한 VR 환경 만들기

VR core로 프로젝트 생성 meta SDK는 최신 기능 가능, 하지만 부자연스러움Unity SDK는 자연스럽지만 최신 기능 업뎃 늦음  xr 환경 플레이어  리얼스케일 프로젝트에서 device 주로 사용 설정 버튼을 눌러 select preset 불러오기  잡아야하는 물체 설정  기기 없어도 XR Device Simulator import  원하는 부분만 잡으려면해당 콜라이더 미리 넣어주기 두 손으로 잡고 싶을 때 (총 등...) 잡았을 때 포지션 설정z축이 앞쪽으로 향하도록 감도?조절 행동을 한 순간 함수 호출  멀리있는 물체가 나에게 다가오는 기능 조이스틱으로 잡은 오브젝트 이동, 회전물체를 조이스틱의 회전으로 회전시키기 손(컨트롤러)부착 위치 ray 선 위치  컨트롤러에서 일어나는 이벤트컨트롤러..

Unity/XR 2024.06.02

[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) 완료된 모습

C# 2024.05.31

[Unity/문제해결] OnBecameVisible 작동 문제

OnBecameVisible는 부착된 오브젝트를 기준으로 작동한다. 따라서 부착된 오브젝트에 렌더러가 있어야 작동함 보통 부모로 빈 오브젝트를 기반으로 오브젝트를 생성하기 때문에 이런 문제를 겪은 듯 하다.  [렌더러가 없어서 작동 안함]  [렌더러가 있는 자식 오브젝트에 붙여보니 정상적으로 작동]  또한 모든 카메라를 대상으로 체크하기 때문에, Player의 MainCamera 뿐만 아니라Scene을 비추는 화면 또한 해당 오브젝트를 비추면 작동하지 않는다.

Unity/문제 해결 2024.05.24

[CS : 디자인패턴] 팩토리(Factory)패턴

객체 생성 부분을 추상화한 팩토리(Factory) 패턴. 전의 프로젝트에서 추상팩토리 패턴을 활용하였는데, 팩토리 패턴을 공부하고 추상팩토리패턴과는 어떻게 다른지 알아보겠다. 팩토리(Factory) 패턴 상속 관계의 두 클래스에서 상위 클래스에서 중요한 뼈대를 결정, 하위 클래스에서 객체 생성에 관한 디테일 결정하는 패턴 1. 느슨한 결합 2. 유연성 ↑ 3. 유지보수성 ↑ ChatGPT에게 팩토리 패턴을 물어보니 1. 간단한 팩토리 패턴 2. 팩토리 메서드 패턴 3. 추상 팩토리 패턴 으로 나누어 예제를 알려주었다. 1. 간단한 팩토리 패턴 using UnityEngine; // 무기의 베이스 클래스 public abstract class Weapon { public abstract void Fire(..

[Unity, C++] 네임스페이스의 단점 Unity C# Using System; , C++ using namespace std;를 지양하는 이유, 범위지정연산자

어제 알아보기로 한 네임스페이스에 관하여 알아보았다. 사실 8개월정도 의문을 품고있었으면서도 이런 내용을 찾아보지 않고 공부하고있었다는점이 부끄럽고 반성하게되었다. 뭐라고 검색해야할지 몰라 using namespace std와 std::를 같이 검색하다 몇가지 글을 찾았다. 내용을 더 찾아보고싶다면 'using namespace/네임스페이스 단점'이라고 검색한다면 찾기 쉬울 것이다. -본론- Unity에서 using System; 대신 System.을 사용하는 이유, C++에서 using namespace std;대신 std::를 사용하는 이유는 무엇일까? using 의 장점 1. 전체적인 코드가 짧아짐 2. 가독성이 좋아짐 개발자의 편의성을 우선적으로 생각한다면 using을 사용하여 선언하겠지만, 개발..

카테고리 없음 2023.07.13

<PJ> Built-in 프로젝트에서 URP 적용하기

프로젝트를 진행하면서 아쉬웠던 점을 조금 더 보완하고 싶어 URP에 대하여 정보를 수집하였다. 특히나 포스트 프로세싱에 관하여, 유니티 내장 프로젝트에서는 출력을 한번만 하여 포스트프로세싱을 부분적으로 적용하는것에 어려움이 있었다. 이를 보완하고 싶어 추가로 더 진행하게 되었다. 프로젝트 각각의 렌더 파이프라인과 변경 방법이 설명되어있다. https://docs.unity3d.com/Manual/BestPracticeLightingPipelines.html Unity - Manual: Choosing and configuring a render pipeline and lighting solution How to get, set, and configure the active render pipeline U..

[PJ/문제해결] Object의 materials 바꾸기

public void ChangeRoof(GameObject targetGo, Material mat) { Debug.LogFormat("target : {0}, mat : {1}, mats0 : {2}, mat1 : {3}", targetGo, mat, targetGo.GetComponent().materials[0], targetGo.GetComponent().materials[1]); //targetGo.GetComponent().materials[1] = mat; Material[] materials = targetGo.GetComponent().materials; materials[1] = mat; targetGo.GetComponent().materials = materials; } 현재 프로..