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

진우의 혼잣말하는 블로그

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

유니티 디자인 패턴에 대해서

디자인 패턴이란?디자인패턴이란 개발할 때 자주 발생하는 문제에 대한 해결책이자, 효율적이고 유연한 설계를 위한 가이드라인이라고 생각하면 됩니다. 과거 우리의 대선배님들이 직접 경험으로 쌓아온 노하우와 설계 원칙을 바탕으로 만들어졌다고 합니다. 디자인패턴은 특정 문제 상황에 대한 해결 방법을 제시하고, 재사용 가능한 형태로 만들어 설계에 적용할 수 있게 해줍니다. 이를 통해 유지보수성, 확장성, 재사용성을 향상시키고, 일관된 개발 방법론을 제공한다는 장점이 있습니다. 디자인 패턴은 보통 다음과 같은 구성 요소로 이루어져 있습니다.문제 (Problem): 디자인 패턴이 적용될 문제나 상황을 정의합니다.해결책 (Solution): 문제를 해결하기 위한 구체적인 설계 방법이나 패턴을 제시합니다.결과 (Conse..

  • format_list_bulleted Unity/디자인패턴
  • · 2024. 6. 3.
  • textsms
유니티 C# OOP와 SOLID에 대해 알아보자 #디자인패턴

유니티 C# OOP와 SOLID에 대해 알아보자 #디자인패턴

OOP란?Object-Oriented Programming의 약자로 한글로 설명하면 객체 지향 프로그래밍이라는 뜻입니다.현실 세계의 객체를 모델링하여 소프트웨어를 개발하는 방법론입니다. 현실 세계의 객체라..?🤔객체라고 단어가 약간 이해하기 어려울 수 있습니다. 객체라는 것은 데이터와 기능을 하나의 단위로 묶은 것을 뜻합니다. 예를 들어, 김진우라는 객체가 있다고 가정하겠습니다. 김진우라는 객체는 이름은 김진우이며, 키 177, 25살, 남자라는 데이터를 가지고 있습니다.그리고 저는 밥 먹고, 걷고, 공부하는 등의 기능을 실행할 수 있습니다. 김진우라는 객체에서 데이터를 코드로 표현하면 다음과 같이 나타낼 수 있습니다.public class Person { public string Name { g..

  • format_list_bulleted Unity/디자인패턴
  • · 2024. 5. 31.
  • textsms
유니티 transform.GetSiblingIndex()에 대해서

유니티 transform.GetSiblingIndex()에 대해서

transform.GetSiblingIndex()란?transform.GetSiblingIndex()는 GameObject가 현재 계층 구조에서 몇 번째 위치(자식 순서)에 있는 반환해줍니다.  예를 들어, 게임 오브젝트들이 같은 부모 오브젝트 아래에 있는 경우, GetSiblingIndex()를 사용하여 해당 GameObject의 위치 순서(번호?)를 얻을 수 있습니다. GetSiblingIndex함수는 GameObject의 자식들을 정렬하는 경우에 유용합니다. 실제로 transform.GetSiblingIndex()를 사용해서 슬롯을 정렬하는 함수를 만들어봤습니다.int childIndex = transform.GetSiblingIndex();int row = childIndex / maxHorizo..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 29.
  • textsms
유니티 더 이상 사용하지 않는 컴포넌트에 경고 문자 표시하기 #System.Obsolete

유니티 더 이상 사용하지 않는 컴포넌트에 경고 문자 표시하기 #System.Obsolete

System.Obsolete란?System.Obsolete는 C#에서 제공하는 속성으로, 특정 메서드나 클래스가 더 이상 권장되지 않음을 나타내는 데 사용됩니다. System.Obsolete속성을 사용하면 해당 메서드나 클래스를 사용하는 코드가 컴파일될 때 경고 또는 오류를 생성합니다.System.Obsolete 속성은 다음과 같이 세 가지 형태로 사용할 수 있습니다.[Obsolete]: 매개변수를 사용하지 않으면 해당 메서드나 클래스를 사용하는 코드가 컴파일될 때 경고를 생성합니다.[Obsolete(string message)]: 더 이상 권장되지 않는 이유를 설명하는 메시지를 포함합니다.[Obsolete(string message, bool error)]: 불리언 값이 true로 설정되면, 해당 메서..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 28.
  • textsms
유니티 LoadingScene #Scene Controller

유니티 LoadingScene #Scene Controller

Scene Controller을 만들기 위해서는 Singleton과 UniTask를 사용해야 합니다. 아래 포스팅에서 '싱글톤'과 'UniTask' 사용방법을 참고해주세요.  두고두고 써먹는 싱글톤(SingleTon) 코드싱글톤 패턴이란? Unity 싱글톤 패턴은 특정 클래스가 게임 수명 기간 동안 하나의 인스턴스만 갖도록 하기 위해 Unity 게임 개발에서 일반적으로 사용되는 디자인 패턴입니다. 이 패턴은 게임 내wlsdn629.tistory.com  유니티 코루틴 대신 unitask유니티에서 unitask를 사용하기 앞서, 유니티에서 사용하는 코루틴이 무엇인지 알아야 진정한 unitask의 장점을 알 수 있습니다. 지피지기 백전불태 그렇기에 유니티에 기본적으로 내장되어 있는wlsdn629.tistor..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 27.
  • textsms
유니티 Hurricane VR #하프라이프 그랩

유니티 Hurricane VR #하프라이프 그랩

유니티 하프라이프 알릭스 Distance Grab, XR Interaction Toolkitusing UnityEngine; using UnityEngine.XR.Interaction.Toolkit; public class HalfLifeDistanceGrab : XRGrabInteractable { public float VelocityThreshold = 2f; public float JumpAngleInDegree = 60f; private XRRayInteractor m_XrRayInteractor; private Vector3 prevwlsdn629.tistory.com예전에 하프라이프 그랩 기능을 만들어 본적이 있습니다.Hurricane VR에는 해당 기능이 구현되어 있어서 쉽게 해당 기능을 ..

  • format_list_bulleted Unity/VR
  • · 2024. 5. 24.
  • textsms
유니티 Hurricane VR 사용 방법 #기초

유니티 Hurricane VR 사용 방법 #기초

핵심 2가지HurricaneVR 에셋을 사용하기 위해서는 Scene에 반드시 2가지가 존재해야 합니다.XR Rigs : HurricaneVR에셋에는 이미 제작된 두 개의 XR Rig가 포함되어 있습니다. (XR Rig 위치: /HurricaneVR/TechDemo/Prefabs/)TechDemoXRRig: Oculus / SteamVR 플러그인과 함께 사용할 때 사용하는 Rig입니다.TechDemoXRRigOpenXR: OpenXR 플러그인과 함께 사용할 때 사용하는 Rig입니다.HVRGlobal : 프레임워크가 기능을 수행하는 데 필요한 여러 컴포넌트가 포함되어 있습니다. 예를 들어, Input Manager, Time Manager 등의 역할을 수행합니다.  XR Rigs과 HVRGlobal이 포함된..

  • format_list_bulleted Unity/VR
  • · 2024. 5. 23.
  • textsms
유니티 원하는 씬 플레이 하기 혹은 현재 씬 플레이 하기

유니티 원하는 씬 플레이 하기 혹은 현재 씬 플레이 하기

유니티 원하는 씬으로 실행되게 하기이 포스팅에서 사용된 코드는 아래 블로거분의 코드를 참고하였습니다! https://mentum.tistory.com/657 unity 언제나 특정 씬에서 시작하게 만들기 #. 특정 씬에서 시작하는 게임 환경 어느 씬 에서나 테wlsdn629.tistory.com 예전에 원하는 씬으로 자동 플레이 되는 에디터 스크립트 코드를 작성해본적 있습니다.문제는 지금 보고 있는 씬이 실행되길 원하는데 자동으로 지정한 씬으로 플레이 되기 때문에 불편함이 있다는 것입니다.  그래서 버튼으로 현재 씬을 플레이할 지, 아니면 지정한 씬을 플레이할 지 선택할 수 있게 만들어 봤습니다. using UnityEditor;using UnityEditor.SceneManagement;using Un..

  • format_list_bulleted Unity/Editor
  • · 2024. 5. 22.
  • textsms
유니티 제발 Universal RP Sample 받아서 공부해주세요 ㅠㅠㅠ

유니티 제발 Universal RP Sample 받아서 공부해주세요 ㅠㅠㅠ

URP에도 샘플이 존재합니다. 샘플 수가 적은 편이 아니고 꽤 되는 편입니다.Rendering Pipeline공부하시는 사람이라면 반드시 샘플 먼저 공부하시면 도움이 될 것 같습니다.  예전에 지나가면 길이 움푹 파이는 효과를 구현해보고 싶었는데 URP 샘플에 있어서 공부할 수 있었습니다.

  • format_list_bulleted Unity/Study
  • · 2024. 5. 21.
  • textsms
유니티 Normal From Height Node에 대해서 #Shader Graph

유니티 Normal From Height Node에 대해서 #Shader Graph

Normal From Height Node는 들어오는 Height 값을 사용하여 대략적인 Normal을 생성합니다.좌측 Gradient Noise Node를 보면 0과 1의 값으로 이루어져 있으며, 이 값으로 Height 값을 결정하는 것 같습니다. 0이면 높이가 낮고, 1이면 높이가 큰? Normal From Height Node를 처리하는 과정은 단지 Height Input만을 사용하기 때문에 Normal From Texture 노드와 같이 3개 이상의 텍스처 샘플을 사용하는 것보다 더 저렴한 방법으로 Bump Mapping 작업을 수행합니다. 그러나, 필터링이 없기 때문에 결과는 매우 저품질이며 픽셀화된 외관을 가질 수 있다는 단점이 있습니다. The Basic에 대한 설명입니다.The Basic에..

  • format_list_bulleted Unity/Shader
  • · 2024. 5. 20.
  • textsms
유니티 Door(문) 스크립트

유니티 Door(문) 스크립트

using UnityEngine;using System.Collections;[RequireComponent(typeof(Collider))]public class Door : MonoBehaviour { public enum rotOrient { Y_Axis_Up, Z_Axis_Up, X_Axis_Up } public enum rotFixAxis { Y, Z } public rotOrient rotationOrientation; public bool applyRotationFix = false; public rotFixAxis rotationAxisFix; public float doorOpenAngle = -90.0f; [Range(1,5)] public float speed = 3.0f;..

  • format_list_bulleted Unity/Study
  • · 2024. 5. 17.
  • textsms
유니티 PlayerPrefs 초기화하는 방법

유니티 PlayerPrefs 초기화하는 방법

using UnityEngine;using UnityEditor;public class ResetPlayerPrefs : MonoBehaviour{ [MenuItem("Window/PlayerPrefs 초기화")] private static void ResetPrefs() { PlayerPrefs.DeleteAll(); Debug.Log("PlayerPrefs has been reset."); }} 유니티 에디터 상단에서 버튼을 통해 PlayerPrefs 데이터를 초기화하는 코드입니다. 코드는 에디터 폴더에 만드셔야 합니다.코드를 만들고 나면 위 사진처럼 윈도우 탭에서 PlayerPrefs 데이터를 초기화할 수 있게 됩니다.

  • format_list_bulleted Unity/Study
  • · 2024. 5. 16.
  • textsms
유니티 상태 패턴(State Pattern)과 전략 패턴(Strategy Pattern) 차이에 대해서

유니티 상태 패턴(State Pattern)과 전략 패턴(Strategy Pattern) 차이에 대해서

디자인 패턴을 무턱대고 사용하지 맙시다! 본인이 사용하고 있는 코드(디자인) 패턴이 무엇인지는 제대로 알고 사용하고, 디자인 패턴의 본연의 의미를 잃어버리지 맙시다!State Pattern이란? State Pattern은 객체의 상태를 캡슐화하여 해당 상태에 따라 객체의 행동을  내부에서 자동으로 변경하는 디자인 패턴입니다.   유니티 설치과정을 예시로 말해보겠습니다. 우리가 유니티를 설치할 때 내부에서 어떻게 설치되는지 알아야 하는 이유가 있을까요? 저희는 그저 Next 버튼을 클릭하기만 하면 됩니다. Next 버튼을 누르면 내부에서 알아서 설치가 되고, 설치가 마무리되면 프로그램은 저희에게 또다시 Next 버튼을 누르라고 합니다. 그 과정이 끝나면 프로그램은 Finish 버튼을 누르라고 저희에게 알립..

  • format_list_bulleted Unity/디자인패턴
  • · 2024. 5. 14.
  • textsms
유니티 버튼 딸깍 딸깍으로 Interaction기능 만들기 #Meta SDK 꿀팁!!

유니티 버튼 딸깍 딸깍으로 Interaction기능 만들기 #Meta SDK 꿀팁!!

VR 개발하시는 분들이라면 Grab Interactable Object를 만들 때 Rigidbody 만들고, Collider 만들고, Grabbable 컴포넌트 추가하는 등의 매우 귀찮은 작업을 항상 하셔왔을 것입니다. 이제는 그럴 필요가 없어졌습니다. 버튼 딸깍 딸깍 한 번으로 Interaction 기능을 만들 수 있게 되었습니다.사용 방법 사용하고자 하는 Interactor를 선택해서 생성해줍니다. 이때도 Block Building 방법으로 쉽게 만들 수 있지만 , 저는 아직 버그가 많아보여서 사용하지 않고 프로젝트에서 검색해서 Drag해서 끌어다 놓는 방법을 여전히 이용중에 있습니다. Interactor를 끌어다놨으면 그에 맞는 Interactable 객체를 만들어야겠죠?  Cube를 하나 만들어주..

  • format_list_bulleted Unity/VR
  • · 2024. 5. 13.
  • textsms
유니티 [System.Serializable]에 대해 알아보자

유니티 [System.Serializable]에 대해 알아보자

[System.Serializable]이란?C#의 속성(attribute)으로, 클래스, 구조체 또는 필드에 적용할 수 있습니다. System.Serializable 속성을 사용하면 직렬화 시스템에 의해 데이터가 직렬화될 수 있음을 나타냅니다. 직렬화는 데이터 구조나 객체 상태가 에디터에 저장되고 나중에 재구성할 수 있는 포맷으로 자동으로 변환하는 프로세스를 뜻합니다.  직렬화?🔽더보기직렬화는 데이터를 저장하거나 전송하기 위해 일련의 연속적인 바이트로 변환하는 과정을 말합니다. 연속적인 바이트로 변환시키면 복잡한 데이터 구조를 쉽게 저장하고 전송할 수 있습니다. 직렬화된 데이터는 나중에 역직렬화를 통해 원래의 형태로 복원할 수 있습니다.예를 들어, 우리가 게임을 만들고 있고 플레이어의 정보, 아이템, ..

  • format_list_bulleted Unity/Attribute
  • · 2024. 5. 10.
  • textsms
  • navigate_before
  • 1
  • ···
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • ···
  • 30
  • navigate_next
진우의 혼잣말 하는 블로그👱‍♀️
📂전체 카테고리
  • 분류 전체보기 (628)
    • Unity (442)
      • Study (218)
      • VR (75)
      • AR (6)
      • Assets (39)
      • Fusion2 (8)
      • Shader (22)
      • 디자인패턴 (7)
      • Animations (7)
      • Editor (8)
      • Attribute (7)
      • VContainer (8)
      • Netcode for GameObjects (21)
      • Relay (5)
      • Lobby (11)
    • 진우의 포트폴리오 (23)
    • 나만의 꿀팁 (37)
    • Git 사용방법 (22)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (8)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
    • 뉴스레터 (0)
인기 글
최근 글
태그
  • #유니티 VR
  • #Meta SDK
  • #티스토리챌린지
  • #VR
  • #자바스크립트
  • #웹 개발
  • #오블완
  • #유니티
  • #유니티 꿀팁
  • #Unity
08-30 16:10
전체 방문자
오늘
어제
전체
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바