티스토리챌린지 12

[유니티]Unity에서 GameObject의 활성화 상태를 확인하는 방법: activeSelf와 activeInHierarchy의 차이

Unity에서 GameObject의 활성화 상태를 확인할 때 사용하는 두 가지 중요한 프로퍼티가 있습니다:activeSelfactiveInHierarchy 이 둘은 비슷해 보이지만, 실제로는 서로 다른 정보를 제공하며, 상황에 따라 반환 값이 다를 수 있습니다. 이번 글에서는 이 두 프로퍼티의 차이점과 활용 방법을 자세히 알아보겠습니다.1. gameObject.activeSelf정의:activeSelf는 GameObject 자신의 활성화 상태를 나타냅니다.이 프로퍼티는 GameObject의 자체적인 활성화 여부만 반환하며, 부모 오브젝트나 계층 구조(hierarchy)의 영향을 받지 않습니다.특징:자체 상태를 확인한다.부모 GameObject의 상태에 영향받지 않음.활성화된 상태에서 부모에 의해 비활성화..

GameDev/[Unity] 2024.11.26

[유니티]Asset Bundles와 Addressables의 차이점 정리

1. Asset Bundles와 Addressables의 기본 개념Asset BundlesUnity의 전통적인 리소스 관리 방식입니다.특정 애셋(프리팹, 텍스처 등)을 번들로 묶어 빌드한 뒤 필요할 때 로드합니다.파일 경로 또는 키(key)를 사용해 직접 관리하고 로드합니다.AddressablesAsset Bundles의 상위 개념으로, Unity에서 번들 관리의 복잡성을 줄이기 위해 개발된 시스템입니다.애셋에 "주소(Address)"를 부여해 쉽게 참조하고 로드할 수 있습니다.빌드와 의존성 관리, 업데이트 등이 자동화되어 있습니다.2. Asset Bundles와 Addressables의 주요 차이점사용 편의성번들 빌드와 로드 로직을 직접 구현해야 함.자동화된 빌드와 로드 로직 제공.참조 방식경로나 키(..

GameDev/[Unity] 2024.11.25

[유니티]Unity에서 오브젝트를 특정 대상이 있는 방향으로 쳐다보게 만드는 방법

Unity에서 오브젝트가 특정 대상을 쳐다보게 만드는 방법은 게임 개발에서 자주 사용하는 기능입니다. 예를 들어, 적 AI가 플레이어를 바라보거나, 카메라가 특정 지점을 따라가도록 설정할 때 사용됩니다. 이번 포스팅에서는 Transform.LookAt() 메서드를 활용한 기본 구현부터 축 제한, 부드러운 회전에 이르기까지 다양한 방법을 다뤄보겠습니다.1. 기본 구현: Transform.LookAt() Transform.LookAt()은 오브젝트를 특정 대상 방향으로 회전하게 만듭니다. 간단한 예제는 아래와 같습니다.using UnityEngine;public class LookAtTarget : MonoBehaviour{ public Transform target; // 바라볼 대상 void ..

카테고리 없음 2024.11.23

[유니티]Unity에서 SetActive와 활성화 상태 이해하기: activeSelf vs activeInHierarchy

Unity에서 GameObject를 활성화하거나 비활성화할 때 자주 사용하는 함수인 **SetActive**는 부모-자식 관계에 따라 작동 방식이 달라질 수 있습니다. 특히, **activeSelf**와 **activeInHierarchy**는 GameObject의 활성화 상태를 나타내는 데 있어 각각 다른 역할을 합니다. 이 글에서는 이 두 속성의 차이와 사용 방법을 알아봅니다.1. SetActive와 부모-자식 관계SetActive(bool state) 함수는 GameObject의 활성화 상태를 설정합니다:true: GameObject를 활성화.false: GameObject를 비활성화.하지만, GameObject가 활성화되더라도 부모 오브젝트가 비활성화된 상태라면 자식 오브젝트는 실제로 활성화되지 ..

GameDev/[Unity] 2024.11.22

[유니티]Unity 개발과 코드 작성 시 알아두면 좋은 단축키와 팁!

Unity로 게임을 개발하거나 코드를 작성하다 보면 효율성이 중요한 순간이 많습니다. 작업 속도를 높이고, 반복 작업을 줄이며, 생산성을 극대화할 수 있는 Unity와 Visual Studio의 유용한 단축키와 개발 팁을 정리 해보았습니다.1. Unity Editor 단축키 모음Unity Editor를 사용할 때 자주 쓰이는 단축키입니다. 작업 효율을 높이고 반복 작업을 줄이는 데 유용합니다.기본 단축키Ctrl + S (Windows) / Cmd + S (Mac): 현재 씬 저장.Ctrl + Z / Cmd + Z: 실행 취소 (Undo).Ctrl + Y / Cmd + Shift + Z: 재실행 (Redo).F: 선택한 오브젝트를 씬 뷰에서 포커스.Ctrl + D / Cmd + D: 선택한 오브젝트 복제...

GameDev/[Unity] 2024.11.21

[유니티]Unity에서 Rigidbody 없이 충돌체 감지하는 방법

Unity에서 객체 간 충돌을 감지할 때 일반적으로 Rigidbody를 사용하지만, 상황에 따라 이를 사용하지 않고도 충돌체를 감지해야 할 때가 있습니다. 이번 글에서는 Rigidbody 없이 충돌체를 감지하는 다양한 방법을 단계별로 정리해 보겠습니다.1. Physics.Overlap 메서드로 충돌체 감지하기 Unity의 물리 메서드를 활용하면 특정 영역 안에 있는 충돌체를 감지할 수 있습니다. 이 방법은 Rigidbody 없이 충돌체를 탐지할 때 매우 효과적입니다.예제: 구 형태 영역 탐지 (Physics.OverlapSphere) 아래 코드는 지정한 반지름 내의 모든 충돌체를 탐지합니다.void DetectColliders(){ float radius = 5f; Vector3 position ..

GameDev/[Unity] 2024.11.20

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

유니티에서 부모-자식 관계를 이용하면 오브젝트 계층 구조를 보다 효율적으로 관리할 수 있습니다. 이 글에서는 자식 오브젝트에 접근하는 다양한 방법과 활용 예시를 알아보겠습니다. 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