진우의 혼잣말하는 블로그
close
프로필 배경
프로필 로고

진우의 혼잣말하는 블로그

  • 분류 전체보기 (636)
    • Unity (450)
      • Study (224)
      • VR (75)
      • AR (6)
      • Assets (39)
      • Fusion2 (9)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (9)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (23)
    • 나만의 꿀팁 (37)
    • Git 사용방법 (22)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (8)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
    • 뉴스레터 (0)
  • 홈
  • 태그
  • 방명록
유니티 자동 Mesh LOD??!!!!

유니티 자동 Mesh LOD??!!!!

유니티 6.2 버전부터는 fbx파일을 선택 후 Mesh LODs 옵션을 체크하면 해당 fbx의 서브 모델에 LOD가 생기게 됩니다. 슬라이드로 LOD 퀄리티를 확인할 수 있습니다.

  • format_list_bulleted Unity/Study
  • · 2025. 10. 13.
  • textsms
유니티 Sprite를 한 번에 Slice하자!

유니티 Sprite를 한 번에 Slice하자!

유니티 작업을 하다 보면, png을 받아서 Sprtie로 사용하는 경우가 빈번합니다.위 png파일들의 경우 기본은 Default이며, UI Image같은데에 사용하려면 Default -> Sprite로 Type을 변경해주어야 합니다.하지만...!! 거기서 끝이 아니죠. Open Sprite Editor를 눌러서 우측 사진처럼 Slicing을 해주어야 위 사진 처럼 Sprite로 사용할 수 있게 됩니다. 한 장이면 상관 없지만, 여러장일 경우 이런 노가다를 하기엔 너무 힘들어서 Editor를 이용하여 딸-칵 해결할 수 있습니다.저의 경우에는 항상 대부분 Sprite를 한 장으로 Slicing하기에 아래 코드는 "한 장"으로만 슬라이싱 됩니다. 2d game의 경우 여러장으로 Slice를 많이 하던데 전 ..

  • format_list_bulleted Unity/Editor
  • · 2025. 10. 2.
  • textsms
유니티 Scene Tool Icon 켜는 방법

유니티 Scene Tool Icon 켜는 방법

Light Probe를 설치하려는데 Tool 버튼이 활성화 되지 않아 한참을 헤맸네요... Scene 창에서 우측 점 3개를 누른 후 Overlay Menu를 클릭해줍니다.그 후, Tools를 활성화 해주면 됩니다.그러면 Light Probe를 인스펙터에서 선택하게 되면 Tool 아이콘 버튼이 생겨나는 것을 확인할 수 있습니다.

  • format_list_bulleted Unity/Study
  • · 2025. 9. 26.
  • textsms
유니티 Fusion2 RPC - InvokeLocal 초간단 정리

유니티 Fusion2 RPC - InvokeLocal 초간단 정리

Fusion 2 - Remote Procedure Calls | Photon EngineRPCs (Remote Procedure Calls) are ideal for sharing punctual game events; in contrast [Networked] properties are the go-to solutions for sharing statedoc.photonengine.comInvokeLocal = true면 RPC를 보낸 그 클라이언트에서 즉시 1번 실행됩니다. (기본값은 true라 따로 설정하지 않아도 됩니다) 내가 StateAuthority(Shared 모드에선 보통 마스터클라이언트)라면, InvokeLocal=true RPC를 호출했을 때 로컬에서 즉시 1회만 실행되고 추가 재실행은..

  • format_list_bulleted Unity/Fusion2
  • · 2025. 9. 22.
  • textsms
유니티 에디터 윈도우 창 단축키 설정방법

유니티 에디터 윈도우 창 단축키 설정방법

작업을 하다 보면 에디터 윈도우 창을 만드는 경우가 빈번하게 발생합니다.주로 상단 Tools 폴더에 넣어서 사용하곤 하는데, 빈번하게 사용되는 윈도우창을 열기에 매번 반복 행위가 불편하게 느껴지셨을 겁니다. 이런 경우에는 에디터 윈도우 창 단축키를 통해 빠르게 해결할 수 있습니다. MenuItem에 맨 끝에 언더바 _ 와 누를 키보드 입력키를 설정하시면 됩니다.그러면 에디터 창에서 F4를 누르면 바로 에디터 윈도우창이 뜨게 됩니다!

  • format_list_bulleted Unity/Study
  • · 2025. 9. 19.
  • textsms
유니티 객체가 위로 향하는지 아래로 향하는지 확인하는 방법

유니티 객체가 위로 향하는지 아래로 향하는지 확인하는 방법

게임을 만들다 보면, 특정 오브젝트가 어느 방향을 향하고 있는지 판단해야 할 때가 많습니다.예를 들어, 병(bottle) 오브젝트가 뒤집혀서 뚜껑이 아래로 향했는지 확인하고 싶을 때가 그렇죠. 유니티에서는 Transform.up, Transform.forward, Transform.right 같은 방향 벡터를 제공하므로, 이를 활용하면 간단히 방향을 체크할 수 있습니다.bool isUpsideDown = Vector3.Dot(transform.up, Vector3.down) > 0;Vector3.Dot (내적, Dot Product) 활용하기 유니티 Vector3(1) ProjectOnPlane함수설명예시ProjectOnPlane(Vector3 vector, Vector3 planeNormal)vecto..

  • format_list_bulleted Unity/Study
  • · 2025. 9. 16.
  • textsms
유니티 Light Probe 영향을 받고 있는지 확인하는 방법

유니티 Light Probe 영향을 받고 있는지 확인하는 방법

Scene View에 벌레같이 생긴 디버그 버튼을 누른 후 [Lighting] 부분에 Contributors / Receivers 를 선택해줍니다.그러면 좌측 하단에 3가지 색상이 뜨면서 설명이 나옵니다 주황색은 Lighting Probes의 영향을 받는 객체란 뜻입니다.초록색은 Light map 그니깐 라이트 베이크된 텍스쳐만 존재한다는 뜻입니다. 라이트 프로브의 영향을 받지 않는다는 뜻입니다.파란색은 라이트맵 + 라이트 프로브의 영향을 받는 객체란 뜻입니다.

  • format_list_bulleted Unity/Study
  • · 2025. 9. 10.
  • textsms
유니티 Light Map 구울 때 헷갈리는 부분 정리

유니티 Light Map 구울 때 헷갈리는 부분 정리

라이트를 구웠는데 바닥처럼 어둡게 나온다면, Static옵션 중 Contribute GI가 커져 있는지 확인 후 키시면 됩니다! Receive GI Type에는 Lightmaps과 Lighj Probes가 있습니다.Static Object의 경우 웬만해서는 Light map를 설정한다고 생각하시면 됩니다.APV와 같은 영향을 받아야 하는 객체라면 Light Probes를 선택하시면 됩니다. 라이트를 구웠는데 텍스처가 너무 엉망으로 되어 있다 하면, Mesh Model에 UV Channel이 있는지 확인하셔야 합니다.없다면, 유니티에서 Generate Lightmap UVs 옵션을 체크하면 해결될 수 있습니다.

  • format_list_bulleted Unity/Study
  • · 2025. 9. 8.
  • textsms
유니티 Meta SDK의 SnapInteractor Data 활용하기 #Snap Interactable

유니티 Meta SDK의 SnapInteractor Data 활용하기 #Snap Interactable

Snap Interactor컴포넌트에는 Data 필드가 존재합니다.Data필드는 Object Type이므로 여러 종류의 Type을 등록할 수 있습니다. 저는 Scriptable Object를 활용해서 Snap될 시, 해당 Snap된 객체의 정보를 조금 더 추가적으로 제공하고자 합니다.[CreateAssetMenu(menuName = "Snap/SnapInfo")]public class SnapInfo : ScriptableObject{ public int PanelId; // 스냅 자리 번호 public string Description; // 설명}위와 같이 객체에 추가할 정보들을 작성해줍니다.Robot Chip을 특정 Snap Zone에 가져다 둘 시 Snap Inter..

  • format_list_bulleted Unity/VR
  • · 2025. 7. 22.
  • textsms
유니티 Meta Quest VR 성능 최적화하기 # OVR Manager

유니티 Meta Quest VR 성능 최적화하기 # OVR Manager

안녕하세요! VR 게임 개발을 할 때 가장 중요한 것 중 하나가 바로 안정적인 프레임레이트 유지와 배터리 효율성인데요, 이를 위해 Meta에서 제공하는 다양한 최적화 기능들을 활용할 수 있습니다. Meta Quest VR 개발 시 성능 최적화를 위한 설정에 대해 간단히 알아보겠습니다.최적화 스크립트 만들기아래에 작성된 OVRSetup 스크립트는 Meta Quest 디바이스의 초기 설정을 담당하는 스크립트입니다.게임이 시작될 때 자동으로 최적의 렌더링 설정을 적용해서 성능과 시각적 품질의 균형을 맞춰줍니다.전체 코드using System.Collections;using UnityEngine;namespace Oculus.Interaction.ComprehensiveSample{ /// /// ..

  • format_list_bulleted Unity/VR
  • · 2025. 6. 23.
  • textsms
유니티 Deep-Link로 친구를 초대해보자! #Group Presence, Deep-Link #Meta

유니티 Deep-Link로 친구를 초대해보자! #Group Presence, Deep-Link #Meta

Group Presence란?Group Presence란 Meta 플랫폼이 유저의 Destination(장소)·Lobby/Match ID·Joinable 여부를 받아서 친구 목록과 퀘스트 메뉴에 노출하는 소셜 레이어 입니다.DestinationApiName: Lobby, Map(동화나라) 같은 장소 키. VRChat의 월드 URL 같은 역할을 합니다.LobbySessionID / MatchSessionID: 실제 방 고유값. 세션을 구분하는 키입니다.IsJoinable: true면 친구 초대 버튼이 뜹니다.☕ Tip: Session ID는 64byte 이하. 더 길면 Presence 등록이 실패합니다.딥링크(Deep-Link)란?친구가 Group Presence Layer를 통해 "참여"버튼을 수락하면 ..

  • format_list_bulleted Unity/VR
  • · 2025. 6. 2.
  • textsms
유니티 Static Batching #기억해라!

유니티 Static Batching #기억해라!

유니티 SRP Batcher, 너 어디까지 허용되니?SRP Batcher가 “같은 셰이더 Variant(= Keyword 집합)” 만 묶어 준다는 사실은 많이 알려져 있지만, 무엇이 Variant를 갈라놓고 어디까지 다른 값을 허용하는지는 문서 곳곳에 흩어져 있습니다. 아래wlsdn629.tistory.com 정적배칭과 Draw Call에 대해서정적배칭을 사용하는 최적화 방법정적이란 말 그대로 움직이지 않는 것을 뜻하며, 움직이지 않는 정적 오브젝트에 활용하는 기법이다. 동일한 재질을 공유하는 오브젝트들을 일괄 처리해서 드wlsdn629.tistory.com Unity Static batcing이란? (실습)Static batcing(정적 배칭) 이란 드로우 콜을 줄이기 위해 움직이지 않는 메시를 결..

  • format_list_bulleted Unity/Study
  • · 2025. 5. 28.
  • textsms
유니티 Fusion2 Network Object Pooling을 만들어 보자!

유니티 Fusion2 Network Object Pooling을 만들어 보자!

Object Pooling을 왜 써야 할까?런타임 중 매번 오브젝트를 생성하고 파괴(Instantiate / Destroy)하면 CPU 부하와 GC(가비지 콜렉션)가 크게 늘어납니다.Network 오브젝트도 예외는 아닙니다. Fusion에서 Spawn() / Despawn()을 호출할 때마다 내부적으로 Instantiate/Destroy가 일어나므로, 총알·적 몬스터처럼 빈번히 생성되는 오브젝트는 풀링이 필수적입니다. Unity Pooling System (최적화 구웃!)Pooling이란? Unity의 풀링 시스템은 런타임 중에 게임 오브젝트를 효율적으로 관리하고 재사용하는 데 사용되는 기술로, 특히 총알, 적, 파티클과 같은 오브젝트를 자주 생성하고 소멸해야 할 때wlsdn629.tistory.com ..

  • format_list_bulleted Unity/Fusion2
  • · 2025. 5. 26.
  • textsms
유니티 VR에서 한쪽 눈만 렌더링될 때, 셰이더 작법

유니티 VR에서 한쪽 눈만 렌더링될 때, 셰이더 작법

유니티 URP환경에서 OpenXR 환경 혹은 Meta XR환경에서 SPI(Single Pass Instance) 문제, 한 쪽 눈에만 렌더링 되는 문제를 두 가지 예제로 알아보겠습니다.그전에 SPI 등에 대한 개념은 아래 포스팅을 참고해주세요. 유니티 VR에서 한 쪽눈만 렌더링되는 경우 #싱글 패스 인스턴스화 렌더링(Single Pass Instanced)VR을 개발하다 보면 한 쪽 눈에만 오브젝트 혹은 UI가 렌더링되는 경우가 종종 발생하시죠?이러한 문제들을 해결하기 위해서는 싱글 패스 인스턴스(Single Pass Instanced)라는 개념을 아셔야 합니다. wlsdn629.tistory.com 유니티 Multi Pass와 Single Pass Instanced/Multi View에 대해VR작업을 ..

  • format_list_bulleted Unity/VR
  • · 2025. 5. 23.
  • textsms
유니티에서 MaterialPropertyBlock을 써야 하는 진짜 이유는?

유니티에서 MaterialPropertyBlock을 써야 하는 진짜 이유는?

유니티 메테리얼 복사본 없이 수정하기 #MaterialPropertyBlock메티리얼을 직접 수정하면 각 객체에 대해 메모리에 해당 머티리얼의 새로운 인스턴스를 생성하게 됩니다. MaterialPropertyBlock를 사용하여 복사본이 생성되는 문제를 해결할 수 있습니다. MaterialProwlsdn629.tistory.com 유니티 OVR 메테리얼 수정을 돕는 MaterialPropertyBlockEditorOVR SDK 프로젝트를 스터디 하다보면 MaterialPropertyBlockEditor 스크립트를 종종 발견하곤 했습니다. MaterialPropertyBlockEditor 스크립트가 무엇인지 이번 포스팅에서 살펴보고자 합니다😁. MaterialPropertyBlocwlsdn629.tis..

  • format_list_bulleted Unity/Study
  • · 2025. 5. 19.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 30
  • navigate_next
인기 글
태그
  • #Meta SDK
  • #유니티
  • #유니티 꿀팁
  • #자바스크립트
  • #유니티 VR
  • #티스토리챌린지
  • #오블완
  • #웹 개발
  • #Unity
  • #VR
최근 댓글
10-24 00:00
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바