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

진우의 혼잣말하는 블로그

  • 분류 전체보기 (624)
    • Unity (441)
      • Study (218)
      • VR (74)
      • 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 사용방법 (20)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
    • 뉴스레터 (0)
  • 홈
  • 태그
  • 방명록
유니티 Spline의 정규 값을 통해 World Position값 얻어내기 #다른 Spline으로 자연스럽게 이동시키고 싶을 때

유니티 Spline의 정규 값을 통해 World Position값 얻어내기 #다른 Spline으로 자연스럽게 이동시키고 싶을 때

Spline이란?Spline은 곡선을 나타내기 위한 수학적 표현으로, 객체를 경로를 따라 이동시킬 때 사용됩니다. 스플라인의 기본 개념은 여러 제어점(Control Points)을 이용해 곡선을 만들어 내고, 곡선을 따라 객체가 움직이도록 하는 것입니다. 곡선은 정규화 값(normalized value), 즉 0에서 1까지의 값을 사용해 스플라인 상의 특정 위치를 계산할 수 있습니다. 정규화 값이 0이면 스플라인의 시작점, 1이면 끝점을 나타냅니다. Spline의 특정 위치를 계산하기public Vector3 GetPositionOnSpline(int splineIndex, float normalizedPosition){ //spline Index : 얻고자 하는 Spline if (splineIn..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 27.
  • textsms
유니티 Mesh Baker의 Texture Baker컴포넌트에 대해서 간단하게 알아보자!

유니티 Mesh Baker의 Texture Baker컴포넌트에 대해서 간단하게 알아보자!

TMI : Texture Baker는 자식으로  Mesh Baker 컴포넌트를 가지고 있는데요, Baker컴포넌트를 통해 새롭게 만들어진 Mesh의 트라이들은 소스 텍스처 대신 새롭게 생성된 아틀라스 텍스처를 참고해야 하도록 UV를 수정해야하기 때문입니다.요약하면, 메시를 베이킹할 때 UV를 변환하여 결합된 메시가 소스 메시와 동일하게 보이도록 해야 합니다.Texture Baker컴포넌트에는 다양한 옵션들이 존재합니다. 하나씩 차근차근 알아보겠습니다. MB3_Texture Baker컴포넌트는 여러 개의 메쉬와 텍스처를 결합하여 하나의 텍스처 아틀라스(혹은 다중 텍스처 아틀라스 )로 만드는 기능을 제공합니다. Texture Baker 컴포넌트를 사용시 지침은 다음과 같습니다.좋은 결과를 위해 같은 셰이더를..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 25.
  • textsms
개발자도 이미지 진단 컨설팅 받는답니다? #Color J 컬러제이 #컨설팅 후기

개발자도 이미지 진단 컨설팅 받는답니다? #Color J 컬러제이 #컨설팅 후기

이 글은 광고 아닙니다 X 홍보입니다 O (돈 안 받고 적는 거예요!) (이런 활동이 처음이라 넘 재밌었고 모든 사람이 알았음 하는 마음에 적어봐요~) 어 뭐야 그럼 당신 어떻게 이미지 컨설팅받을 수 있던 거야? 이렇게 물어보실 수 있으시겠지만,학교 동아리(AKO)에서 진행하는 활동덕에 이미지 컨설팅을 무료로 받을 수 있었습니다(뭐 동아리비에 포함되어 있겠죠).저는 사다리 타기를 통해 대표로 뽑혀 운이 좋게 이미지 컨설팅 모델이 되어 더 자세히 설명도 들을 수 있었습니다! 개발자 여러분들 개발 포스팅 보며 개발하는 것도 좋지만, 가끔 이런 글도 보시면서 자기 자신을 가꿔보시는 건 어떠신가요?  모든 내용을 담을 수 없기에 일부분만 가져왔습니다. 또한 중요한 내용은 불가피하게 모자이크 처리 되었습니다. 양..

  • format_list_bulleted 홍보 및 리뷰
  • · 2024. 9. 24.
  • textsms
유니티 MethodImplOptions.AggressiveInlining란? #인라인화

유니티 MethodImplOptions.AggressiveInlining란? #인라인화

코드를 최적화하려면 여러 가지 기술을 사용해야 합니다. 그중 하나가 인라인화(inlining)입니다. 인라인화는 간단하게 말해, 메서드 호출을 제거하고 해당 메서드의 코드를 호출 위치에 직접 삽입하는 최적화 기법입니다. C#에는 인라인화를 강력히 권고하는 속성(Attribute)이 있는데, 바로 MethodImplOptions.AggressiveInlining입니다. 이번 포스팅에서는 MethodImplOptions.AggressiveInlining 속성에 대해 간단하게 알아보겠습니다. MethodImplOptions.AggressiveInlining란?AggressiveInlining은 C#의 MethodImplOptions 열거형(enum)의 값 중 하나입니다. AggressiveInlining 속성..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 23.
  • textsms
유니티 입력된 숫자의 부호를 반환하는 수학 함수 #Mathf.Sign

유니티 입력된 숫자의 부호를 반환하는 수학 함수 #Mathf.Sign

저는 Mathf.Sign를 Sine함수와 헷갈리는 바람에... 약간 머리가 아팠네요 하하 Sign은 Sine함수가 아닌 Sign(부호)를 나타냅니다.  /// /// Returns the sign of f. /// /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static float Sign(float f) => (double) f >= 0.0 ? 1f : -1f;public static float Sign(float f) => (double) f >= 0.0 ? 1f : -1f; Sign 함수는 값을 받아와서 값이 양수면 1을, 음수면 -1을 돌려줍니다. private float SnapInput(fl..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 19.
  • textsms
2024 경기 메타버스 아이디어톤 최우수상을 타다!

2024 경기 메타버스 아이디어톤 최우수상을 타다!

2024 경기 메타버스 아이디어톤이란?「2024 경기 메타버스 아이디어톤」은 메타버스·XR 분야 기업과제 해결 및 콘텐츠 기획 아이디어 경진대회입니다. 공모주제는 트랙 1과 트랙2로 나뉘었습니다.(트랙1) HD현대사이트솔루션 : 제조업(건설기계)에서 Unity엔진을 활용한 아이디어 기획- 예시 : VR/AR/XR 기반 콘텐츠, AR품질검사, Digital Twin, 정비 메뉴얼, 교육, 마케팅 등- 기술/사업적 측면에서 분석- 제조사 및 고객 관점에서 기대효과(트랙2) 티맥스메타에이아이 : 3D공간을 기반으로 한 서비스 정의 및 컨셉 기획- 자유롭게 서비스의 핵심가치, 타겟 사용자, 페르소나, 수익모델, 홍보방안 등 기획 후 서비스 컨셉에 맞춰 티맥스 자체 툴(프로젝트M)을 이용해 공간 꾸미기- 본 서비..

  • format_list_bulleted 진우의 포트폴리오
  • · 2024. 9. 16.
  • textsms
유니티 제네릭을 사용하여 유연한 이벤트 관리 시스템 구현하기 #옵저버 패턴

유니티 제네릭을 사용하여 유연한 이벤트 관리 시스템 구현하기 #옵저버 패턴

옵저버 패턴과 유사하다고 짚고 넘어가겠습니다. 이번 포스팅에서는 이벤트 관리 시스템을 제네릭 타입을 사용하여 구현하였습니다.제네릭을 사용함으로써 다양한 타입의 데이터를 유연하게 처리할 수 있으며, 여러 이벤트에 맞는 데이터를 효율적으로 전달하는 방법에 대해 알아보겠습니다.제네릭을 사용한 EventManager 구현public class EventArgs : EventArgs{ public T Data { get; } public EventArgs(T data) { Data = data; }}EventArgs는 제네릭 타입을 사용하여 데이터를 담을 수 있습니다. 이벤트가 발생할 때, 특정 타입의 데이터를 전달할 수 있도록 합니다. EventArgs를 상속받는 이유는 .NE..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 11.
  • textsms
유니티 시네머신 간단하게 알아보기 #Chinemachine

유니티 시네머신 간단하게 알아보기 #Chinemachine

시네머신을 이용하면 코딩 한 줄 없이 다양한 상황을 쉽게 연출할 수 있습니다. 시네머신은 종류도 많고 Extenstion 종류도 많기에 이번 포스팅에서는 간단하게 Dolly Track, Dolly Cart, Virtual Camera, Blend List Camera 4가지 종류에 대해서만 말해보고자 합니다.Virtual Camera를 활영한 기법들ChinemachineVirtualCamera컴포넌트에는 다양한 프로퍼티 및 옵션이 존재합니다. 하나씩 표로 살펴보겠습니다.  속성명 설명 Status카메라 상태를 나타냅니다. 예시로 "Live"는 현재 이 가상 카메라가 활성 상태임을 의미합니다.Game Window Guides게임 창에서 카메라의 시각적 가이드라인을 표시할지 여부를 선택할 수 있습니다.Sa..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 9.
  • textsms
유니티 VR 카메라가 벽에 충돌할 때 어둡게 만들기 #Screen Fade

유니티 VR 카메라가 벽에 충돌할 때 어둡게 만들기 #Screen Fade

Meta XR Core SDK를 다운받으면 Util Script에 OVRScreenFade.cs가 존재합니다.OVRScreenFade를 이용해서 카메라가 벽에 충돌할 때 어두워지는 효과를 연출하는 코드를 가져왔습니다.CharacterCameraConstraintCharacterCameraConstraint 스크립트는 카메라와 오브젝트간의 충돌을 감지하고, 화면 페이드를 적용하거나 캐릭터의 캡슐 콜라이더 높이를 조정하여 자연스러운 움직임을 구현하는 스크립트입니다.using UnityEngine;public class CharacterCameraConstraint : MonoBehaviour{ private const float FADE_RAY_LENGTH = 0.25f; private const..

  • format_list_bulleted Unity/VR
  • · 2024. 9. 4.
  • textsms
유니티 연산 순서에 따른 성능 차이 이해하기

유니티 연산 순서에 따른 성능 차이 이해하기

물리적인 이동을 구현할 때, 이동 속도를 프레임 시간과 곱해 이동 거리를 계산하는 것은 일반적인 방법입니다. 하지만 동일한 수식을 작성할 때, 연산 순서에 따라 성능에 차이가 발생할 수 있다는 사실을 알고 계셨나요?코드 예시를 통해 차이를 설명하고, 최적화하는 방법을 알아보겠습니다.연산 순서 이해하기rigidbody.MovePosition(rigidbody.position + moveDir * Speed * Time.fixedDeltaTime);rigidbody.MovePosition(rigidbody.position + moveDir * (Speed * Time.fixedDeltaTime)); 이때 moveDir는 벡터(Vector)이며 Speed는 스칼라(Scala) 값입니다.  첫 번째 줄의 코드는..

  • format_list_bulleted Unity/Study
  • · 2024. 9. 2.
  • textsms
유니티 OVR 간단한 캐릭터 컨트롤러 #CapsuleCollider #rigidbody

유니티 OVR 간단한 캐릭터 컨트롤러 #CapsuleCollider #rigidbody

using System;using UnityEngine;[RequireComponent(typeof(CapsuleCollider), typeof(Rigidbody))]public class SimpleOVRMovement : MonoBehaviour{ public bool EnableLinearMovement = true; public bool HMDRotatesPlayer = true; public float RotationAngle = 45.0f; public float Speed = 0.0f; public OVRCameraRig CameraRig; private bool ReadyToSnapTurn; private Rigidbody rigidbody; pr..

  • format_list_bulleted Unity/VR
  • · 2024. 8. 30.
  • textsms
유니티 ShowIfComponent Attribute 만들어보기 #특정 컴포넌트를 가지고 있을 때 보여지게

유니티 ShowIfComponent Attribute 만들어보기 #특정 컴포넌트를 가지고 있을 때 보여지게

유니티 Odin InspectorOdin Inspector란? 오딘 인스펙터는 커스텀 에디터 코드를 한 줄도 작성하지 않고도 강력하고 사용자 친화적인 커스터마이징 에디터의 모든 워크플로 이점을 누릴 수 있는 Unity용 플러그인입니다.wlsdn629.tistory.comShowIf 어트리뷰트는 오딘 인스펙터에 있는 기능이긴 합니다.ShowIf 어트리뷰트를 사용하면 특정 컴포넌트의 조건에 따라 특정 필드를 보이게 할지 말 지를 컨트롤 할 수 있습니다. 저는 ShowIf 어트리뷰트를 응용해서 ShowIfComponent 어트리뷰트를 만들어보았습니다.ShowIfComponent 어트리뷰트를 사용하면 특정 컴포넌트를 가지고 있을 때에만 해당 필드가 보여지게 할 수 있습니다.ShowIfComponent Attri..

  • format_list_bulleted Unity/Attribute
  • · 2024. 8. 28.
  • textsms
10분 게임 공모전 출전했습니다

10분 게임 공모전 출전했습니다

이번 10분 콘테스트 출품작인 '러너스'입니다 !그 누구도 깰 수 없는 극강의 어른용 타자게임 .. 한 번씩 플레이 해보시고 솔직한 리뷰 남겨주시면 감사드리겠습니다!  만들래 - 인디게임 팀빌딩, 게임 개발팀 만들기인디 게임 개발의 시작 - 인디게임 팀빌딩, 게임 개발팀 만들기mandlemandle.com

  • format_list_bulleted 진우의 포트폴리오
  • · 2024. 8. 26.
  • textsms
유니티 Dotween 함수 정리

유니티 Dotween 함수 정리

자주 사용하는 함수- DoRestart : 트윈을 처음부터 다시 시작- DoRewind : 트윈을 거꾸로 재생하여 처음 상태로 되돌림두 개의 함수를 이용해서 주로 UI 애니메이션 만들곤 함.   함수 이름  설명 DOComplete()트윈을 즉시 완료 상태로 만듭니다. 트윈이 바로 끝나고 완료 콜백이 호출됩니다.DOKill()트윈을 즉시 중지하고, 관련된 모든 리소스를 해제합니다.DOKillById(string id)지정된 ID를 가진 트윈만 중지하고, 관련된 리소스를 해제합니다.DOPause()트윈을 일시 중지합니다.DOPauseAllById(string id)지정된 ID를 가진 모든 트윈을 일시 중지합니다.DOPlay()트윈을 재생합니다.DOPlayById(string id)지정된 ID를 가진 트윈만..

  • format_list_bulleted Unity/Study
  • · 2024. 8. 21.
  • textsms
유니티 TextMeshPro-Text (UI) - Text Input을 이용해서 Text Control하기

유니티 TextMeshPro-Text (UI) - Text Input을 이용해서 Text Control하기

TextMeshPro-Text (UI) 컴포넌트는 Text Input에 태그를 이용해서 Text를 꾸밀 수 있다는 것을 알고 계시나요?이번 포스팅에서는 TextMeshPro-Text (UI)에 사용할 수 있는 태그 몇 가지와 사용 방법에 대해서 말해보겠습니다. 텍스트 스타일 관련 태그 태그 설명 사용 예시 텍스트를 굵게 표시Bold Text텍스트를 기울임체로 표시Italic Text텍스트에 밑줄을 그림Underlined Text텍스트 색상 및 크기 관련 태그 태그 설명 사용 예시 텍스트 색상을 지정 (HEX 코드 사용 가능)Red Text텍스트 크기를 지정Large Text텍스트에 하이라이트(배경색)을 지정Highlighted Text 다음은 이쁜 색상 (계열)을 가져와봤습니다. 색상 이름 H..

  • format_list_bulleted Unity/Study
  • · 2024. 8. 19.
  • textsms
유니티 스카이박스(SkyBox) 빛 세기 조절하기

유니티 스카이박스(SkyBox) 빛 세기 조절하기

라이팅 세팅에 가시면 Environment Lighting이라는 부분에 존재합니다.여기에서 Intensity Multiplier를 조절하시면 됩니다.

  • format_list_bulleted Unity/Study
  • · 2024. 8. 16.
  • textsms
유니티 I2Localization GlobalParameters기능을 사용하여 특정 Param을 런타임에 정하게 하기

유니티 I2Localization GlobalParameters기능을 사용하여 특정 Param을 런타임에 정하게 하기

Global Param을 사용하는 이유 Global Param을 사용하지 않고 다국어를 번역하게 될 경우 글씨 위치가 맞지 않아 불편함을 겪게 됩니다. 예를 들면 아래와 같습니다.  [한국어의 경우] 발견된 이상 개수 :                         7[영어의 경우   ] Total Number Of Anomalies : 7 위와 같이 글씨 위치가 맞지 않게 되는 문제가 있었습니다. 그래서 7의 경우 발견된 이상 현상의 개수이므로 해당 Value를 Param으로 지정해주었습니다. Param을 컨트롤 하는 방법은 Local과 Global이 있습니다.Local로 Param 컨트롤하기Local의 경우 위와 같이 미리 컴포넌트를 이용해서 특정 Param을 컨트롤 할 수 있습니다. Global로 P..

  • format_list_bulleted Unity/Assets
  • · 2024. 8. 14.
  • textsms
유니티 오브젝트 풀(Object Pool) 매니저를 제네릭 타입으로 제작해보았다

유니티 오브젝트 풀(Object Pool) 매니저를 제네릭 타입으로 제작해보았다

22년도에 Pool System에 대해서 언급한적이 있습니다. Pooling에 관한 내용은 아래 포스팅에 작성했으니 참고하시면 되겠습니다. 이때 소개한 Pool의 경우 하나의 오브젝트에 대해서만 관리할 수 있다는 단점이 있었습니다. Unity Pooling System (최적화 구웃!)Pooling이란? Unity의 풀링 시스템은 런타임 중에 게임 오브젝트를 효율적으로 관리하고 재사용하는 데 사용되는 기술로, 특히 총알, 적, 파티클과 같은 오브젝트를 자주 생성하고 소멸해야 할 때wlsdn629.tistory.com 이번 시간에는 Dictionary를 활용해서 하나의 오브젝트에 대해서만 관리하는 것이 아닌 2개 이상의 오브젝트를 관리할 수 있는 방법과 활용 방법에 대해 알아보겠습니다. 제목에서도 알 수 ..

  • format_list_bulleted Unity/Study
  • · 2024. 8. 12.
  • textsms
Photon Fusion2 샘플에 대해서 정리한 표 / 학습 로드맵

Photon Fusion2 샘플에 대해서 정리한 표 / 학습 로드맵

Sample Name Host Mode SharedMode Description Study Focus Asteroids SimpleYesNo간단한 아케이드 스타일의 게임 샘플. 네트워킹과 동기화의 기본을 배우기 적합.기본적인 네트워킹 개념, 동기화, 및 객체 이동 동기화를 학습하는 데 적합.Simple FPSYesNo기본적인 1인칭 슈팅 게임 샘플. FPS 게임에서의 네트워크 동기화와 레이턴시 처리 예시.FPS 장르의 캐릭터 컨트롤, 발사체 및 상호작용의 네트워크 처리 학습에 유용.Razor MadnessYesNo레이싱 게임 스타일의 샘플. 차량 물리와 동기화 메커니즘 학습.차량 물리 및 동기화 알고리즘, 레이싱 게임의 네트워크 처리 학습에 적합.Quiz NetworkYesYes간단한 퀴즈 게임 ..

  • format_list_bulleted Unity/Fusion2
  • · 2024. 8. 9.
  • textsms
유니티 SensorToolkit 2을 사용해 감지 기능을 쉽게 구현하자!

유니티 SensorToolkit 2을 사용해 감지 기능을 쉽게 구현하자!

SensorToolkit 2이란? Sensor Toolkit2는 Raycasts, Overlaps 등의 기능을 활용하여 2D와 3D 환경에서 다양한 감지(Detection) 동작을 쉽게 구현할 수 있게 도와주는 에셋입니다.센서(Sensor) 컴포넌트를 통해 복잡한 감지 및 AI 행동을 구현할 수 있으며, 성능 최적화가 잘 되어 있다는 것이 특징입니다. 다양한 필터링 옵션과 편집기 내 테스트 기능을 존재하여 빠르게 디버깅 및 테스트 할 수 있어 효율적으로 개발을 할 수 있습니다.센서와 신호란?Sensor Toolkit2에는 핵심 단어가 존재합니다. '센서', '신호'. 두 핵심 단어에 대해서 알아보겠습니다. 센서란?특정 조건에 따라 객체를 감지할 수 있게 도와주는 컴포넌트 입니다. 센서에는 아래와 같은 종..

  • format_list_bulleted Unity/Assets
  • · 2024. 8. 5.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ···
  • 32
  • navigate_next
진우의 혼잣말 하는 블로그👱‍♀️
📂전체 카테고리
  • 분류 전체보기 (624)
    • Unity (441)
      • Study (218)
      • VR (74)
      • 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 사용방법 (20)
    • AI (23)
    • 게임후기 (16)
    • 블렌더 (9)
    • 홍보 및 리뷰 (7)
    • 웹 개발 (27)
    • 정리 안 됨 (16)
    • 뉴스레터 (0)
인기 글
최근 글
태그
  • #유니티 VR
  • #유니티 꿀팁
  • #Meta SDK
  • #웹 개발
  • #Unity
  • #오블완
  • #유니티
  • #티스토리챌린지
  • #VR
  • #자바스크립트
07-11 06:44
전체 방문자
오늘
어제
전체
최근 댓글
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바