GameDev/[Unity] 31

[유니티]자식 오브젝트 접근 방법

유니티에서 부모-자식 관계를 이용하면 오브젝트 계층 구조를 보다 효율적으로 관리할 수 있습니다. 이 글에서는 자식 오브젝트에 접근하는 다양한 방법과 활용 예시를 알아보겠습니다. 1. 기본 접근 방법Transform의 GetChild() 메서드 사용부모 오브젝트의 Transform을 통해 자식 오브젝트에 접근할 수 있습니다.Transform _child = transform.GetChild(0);Debug.Log(_child.name);장점: 간단하고 특정 자식에 빠르게 접근 가능.단점: 인덱스를 이용하므로 구조가 변경되면 코드 수정 필요.2. Find() 메서드로 자식 이름으로 찾기Transform.Find()를 사용하면 자식 오브젝트 이름을 기준으로 접근할 수 있습니다.Transform _child =..

GameDev/[Unity] 2024.11.19

[유니티]Unity 최적화 팁: Vector3.Distance와 sqrMagnitude의 차이와 활용법

Unity에서 두 점 사이의 거리를 계산할 때 주로 사용되는 함수는 **Vector3.Distance**와 **sqrMagnitude**입니다. 이 둘은 같은 목적(거리 계산)을 가지고 있지만, 사용 방식과 성능에 차이가 있습니다. 이 글에서는 이 두 방법을 비교하고, 상황에 맞는 최적의 선택법을 알아보겠습니다.1. 두 함수의 기본 원리(1) Vector3.DistanceVector3.Distance는 유클리드 거리(Euclidean Distance) 공식을 사용해 두 점 사이의 정확한 거리를 반환합니다.​Unity 코드:float _distance = Vector3.Distance(pointA, pointB);이 함수는 내부적으로 제곱근(√) 연산을 포함하고 있어, 정확한 거리 값을 제공하지만 연산량이..

GameDev/[Unity] 2024.11.18

[유니티]Unity에서 폰트 기본값 변경하기

Unity에서 TextMesh Pro를 사용하면 텍스트의 품질과 유연성을 크게 향상시킬 수 있습니다. 하지만 프로젝트 전반에서 **기본 폰트(Default Font)**를 변경하고자 할 때, 설정 위치를 정확히 알지 못하면 번거로울 수 있습니다. 이 글에서는 TextMesh Pro의 Default Font Asset을 설정하는 방법을 자세히 설명하겠습니다.Default Font 설정이 중요한 이유 프로젝트에서 TextMesh Pro를 사용하는 경우, 새로운 TextMesh Pro 텍스트 오브젝트를 생성할 때 기본적으로 적용되는 폰트는 Default Font Asset으로 정의됩니다. 이를 변경하면 매번 텍스트의 폰트를 수동으로 설정하지 않아도 되며, 일관된 UI 디자인을 유지할 수 있습니다.Default..

GameDev/[Unity] 2024.11.17

[유니티] Unity에서 파티클 및 Trail Renderer 초기화하기: 재사용 시 남은 잔상 제거 팁

Unity에서 Particle System과 Trail Renderer는 화려한 비주얼 효과를 연출하는 데 자주 사용됩니다. 하지만 오브젝트 풀링(Object Pooling) 기법을 활용해 재사용할 경우, 이전 프레임의 Trail(잔상)이나 파티클이 남아있는 문제가 발생할 수 있습니다. 이러한 문제를 해결하고 깔끔하게 초기화하는 방법을 소개합니다.1. Trail Renderer 초기화 Trail Renderer는 이전 경로가 남는 특성이 있어, 재사용 전에 이를 초기화해야 합니다. Trail Renderer의 Clear() 메서드를 활용하면 이전 데이터를 제거할 수 있습니다.예제 코드:2. Particle System 초기화 Particle System의 경우, 이전에 방출된 파티클이 남아 보일 수 있습..

GameDev/[Unity] 2024.11.16

[유니티]Coroutine보다 Update를 사용하는 것이 더 좋은 상황들

Unity에서 Update와 코루틴은 둘 다 반복 작업을 수행할 때 자주 사용되는 기능입니다. 두 가지 방법 모두 특정 작업을 일정한 간격으로 실행하거나 시간에 따라 변화를 주기에 유용하지만, 프로젝트의 성격과 자원 관리 측면에서 적합한 방법을 선택하는 것이 중요합니다. 특히 모바일 게임 개발처럼 자원 관리가 중요한 환경에서는 Update를 활용하는 것이 코루틴보다 효율적인 경우도 있습니다. 이번 글에서는 코루틴보다 Update를 사용하는 것이 좋은 상황들에 대해 설명드리겠습니다.1. 작업이 매 프레임마다 상태에 따라 유동적으로 실행되어야 할 때 Update는 매 프레임마다 호출되므로 게임의 상태에 따라 작업이 유동적으로 실행될 때 적합합니다. 예를 들어, 플레이어의 입력을 감지해 캐릭터의 움직임이나 애..

GameDev/[Unity] 2024.11.14

[유니티]Animator Controller의 Entry, Exit, Any State

유니티 애니메이션 컨트롤러에서 자주 사용되는 Entry, Exit, Any State에 대해 쉽게 설명하겠습니다. 각각의 역할과 사용 시기를 이해하면 애니메이션 상태 전환을 더 효과적으로 관리할 수 있습니다.1. EntryEntry는 애니메이션 컨트롤러에서 애니메이션이 처음으로 실행될 때 진입하는 첫 번째 상태입니다.사용 시기: 게임 오브젝트가 활성화되거나 씬에 처음 등장할 때, 애니메이터가 시작될 때 진입할 상태를 지정합니다.용도: 특정 애니메이션을 시작 애니메이션으로 설정할 때 사용됩니다.예시: 캐릭터가 처음 등장할 때 ‘Idle’ 상태로 설정하고 싶다면 Entry에서 Idle 상태로 연결해 줍니다.Entry는 단 한 번만 사용되며 애니메이터가 처음으로 시작될 때 설정된 애니메이션 상태로 이동하도록 ..

GameDev/[Unity] 2024.11.14

[유니티]오브젝트의 이동 및 회전 오류(Animator / Animation Clip)

Animator 컴포넌트를 추가한 오브젝트의 이동 및 회전을 스크립트에서 구현할 때는 Animator-Apply Root Motion 를 체크 해제 해야 제대로 실행이 된다. Apply Root Motion 은 오브젝트의 포지션과 회전을 애니메이션 자체에서 제어할지 또는 스크립트에서 제어할지 여부입니다. True - 오브젝트 포지션과 회전을 애니메이션 자체에서 제어False - 오브젝트 포지션과 회전을 스크립트에서 제어(Animation Clip)

GameDev/[Unity] 2024.04.29

[유니티]안드로이드 화면 고정, 회전(가로/세로) 설정 방법

유니티 안드로이드 화면 고정, 회전 설정 방법 1. [Edit - Project Settings - Player] 에 들어가셔서 Resolution and Presentation을 선택합니다. 2. Orientation 안에 Default Orientation 설정을 사용해 화면 고정 및 회전시킬 수 있습니다. Portrait - 세로 고정(홈버튼 아래쪽 위치) Portrait Upsode Down - 세로 고정(홈버튼 위쪽 위치) LandscapeLeft - 가로 고정(홈버튼 오른쪽 위치) LandscapeRight - 가로 고정(홈버튼 왼쪽 위치) AutoRotation - 휴대폰 회전에 따라 화면 변경 (세부 옵션에 해당하는 버튼 해제시 그 방향으로 핸드폰을 회전시켜도 화면은 그대로 유지된다.) S..

GameDev/[Unity] 2024.02.15