Unity&C# 28

[Unity] Canvas Component

Render Mode: UI가 화면에 렌더링되는 방식을 설정.Screen Space - Overlay: UI가 항상 화면 위에 표시되며, 카메라와 무관하게 렌더링.Screen Space - Camera: 특정 카메라를 통해 UI가 화면에 렌더링.World Space: UI가 3D 공간 내에서 위치하며, 다른 오브젝트와 함께 렌더링.Pixel Perfect: 활성화하면 UI가 픽셀 단위로 정확히 렌더링되도록 조정. 저해상도 디스플레이에서 UI가 흐릿해지는 것을 방지할 수 있음.주의) 성능을 엄청 먹음Sort Order: Canvas의 렌더링 순서를 결정. 값이 낮을수록 먼저 렌더링됨.Target Display: UI가 출력될 디스플레이를 선택.Additional Shader Channels: 쉐이더에서 사..

Unity&C# 2024.12.23

[Unity] Animation 관련 소소한 문제들

Can Transition To Self는 애니메이션 상태가 자기 자신으로 전이(Transition)할 수 있는지를 설정하는 것- 이게 켜져있어서 대쉬 애니메이션이 꼬였음. 왜꼬였지..? 현재 진행중인 애니메이션 클립의 절대적 시간을 알 수 없음 대신 normalized된 시간을 알 수 있음- Animator.GetCurrentAnimatorStateInfo(0).normalizedTime을 활용. if (stateMachine.Character.Animator.GetCurrentAnimatorStateInfo(0).IsTag(skill.GetAnim())) { normalizedTime = stateMachine.Character.Animator.GetCurrentAnimatorStateInfo..

Unity&C# 2024.12.06

[Unity] Character Controller & Rigidbody

1. CharacterControllerCharacterController는 캐릭터의 움직임을 처리하기 위해 설계된 특수한 컴포넌트로, 주로 캐릭터의 이동을 수동으로 제어하는 데 사용주요 특징직접 이동 제어: Move() 또는 SimpleMove() 메서드를 사용하여 캐릭터를 움직일 수 있습니다. 이동은 캐릭터가 물리적으로 기반한 힘에 의해 움직이는 것이 아니라 직접적으로 위치를 제어.충돌 처리: CharacterController는 다른 콜라이더와의 충돌을 처리하지만, Rigidbody처럼 물리 기반의 반응을 자동으로 제공하지는 않음. 미는 등의 물리상호작용을 원한다면 OnControllerColliderHit() 함수를 사용.중력 및 물리 제어: 중력은 자동으로 적용되지 않으며, 개발자가 직접 스크립..

Unity&C# 2024.12.02

[C#] [field : SerialiableField]

강의를 보던중 [field : SerialiableField][field : Range()] [field : Header()]라고 쓰시는걸 발견했다.[SerialiableField] [Range()] [Header]는 많이 봤는데 앞에 필드가 붙어서 의아했다.Property도 인스팩터창에서 보고 싶어..![SerialiableField]를 하면 기본적으로 private 필드를 인스팩터 창에서 볼 수 있다. 하지만, 프로퍼티는 그렇지 못했다.프로퍼티를 직렬화 하기 위한 방법이 [field : SerialiableField] 였던것..![Range][Header]또한 앞에 field를 붙이면 프로퍼티에 적용이 되는 것 이다.

Unity&C#/Unity 2024.11.15

[Unity] ParticleSystem

개인과제 진행 중, 파티클 옵션에 대해 헷갈려서 정리.Particle System ModulesMainModule파티클의 초기상태를 제어하거나 여러가지 설정들을 조절 할 수 있는 모듈Duration : 파티클 시스템이 실행되는 지속 시간설명: Duration은 파티클 시스템이 재생되는 총 시간을 의미합니다. 쉽게 말해, 이 파티클 시스템이 한번 발동했을 때 얼마나 오랫동안 파티클을 생성할 것인지를 결정하는 값입니다.영향: Duration이 끝난 후에는, 설정에 따라 파티클 시스템이 종료되거나 재생을 반복할 수 있습니다 (Looping 옵션이 켜져 있는 경우).적용 대상: 파티클 시스템 전체에 영향을 미칩니다.차이점: Duration은 시스템이 파티클을 생성하는 기간을 의미하며, 이 동안에 Emission..

Unity&C#/Unity 2024.11.11

[Unity] TextMeshPro AtlasRenderMode

Unity의 TextMeshPro에서 AtlasRenderMode는 폰트 아틀라스(texture atlas)를 생성할 때 글리프(glyph)를 렌더링하는 방식을 결정하는 설정.글리프(glyph)는 문자(character)의 시각적 형태를 의미. 즉, 글자, 숫자, 기호 등의 구체적인 모양이나 디자인을 나타내는 개별적인 도형. 폰트(font) 내에서 각 문자는 고유한 글리프로 표현되며, 이러한 글리프들이 모여 우리가 읽는 텍스트를 구성.폰트 아틀라스(Font Atlas) 또는 텍스처 아틀라스(Texture Atlas)는 여러 개의 글리프(glyph)나 이미지를 하나의 큰 텍스처에 모아 놓은 것을 의미.주요 AtlasRenderMode 종류:비트맵(Bitmap):설명: 기본적인 래스터화된 이미지로 글리프를 ..

Unity&C#/Unity 2024.11.09

[Unity] 디버그 모드와 SerializeField

한줄 요약 : 아무 곳에나 [SerialzeField]와 [Serialzable]을 붙이면 안되며, 편하게 디버깅하려 하면 안된다.문제 상황 코드Inventory (class)InventoryItem[] (field)InventoryItem ClassItemDataintItemData Classstring 및 int로 이루어진 필드ItemData클레스에 [Serialzable]Inventory클래스에도 [Seriazable]을 붙여 둔 상황.(별 이유 없이 붙임. 그냥 붙임. 문제 상황디버그 모드에서는 Inventory의 InventoryItem 배열이 전부 기본값으로 0이 들어가서 초기화 되어 있음노말모드에서 보기위해 Inventory 의 InventoryItem[]에 [SerialzeField] 를 ..

Unity&C#/Unity 2024.11.01