레이어
레이어는 오브젝트들의 그룹을 만들고 관리하는 데 사용.
씬의 일부분만 렌더링 하거나 물리적 충돌을 판정하는 데 사용.
레이어 마스크
기본적으로 여러 레이어의 조합.
게임 오브젝트나 카메라와 같은 요소들이 어떤 레이어에 속해 있는지를 제어하고 사용할 때 유용한 기능.
비트 마스크로 표시되므로 여러 레이어를 한 번에 간편하게 지정할 수 있음.
using UnityEngine; public class ExampleScript : MonoBehaviour { // 적 레이어에 대한 레이어마스크 생성 public LayerMask enemyLayer; private void Update() { // 플레이어가 적 레이어와 충돌하는지 확인 if (Physics.CheckSphere(transform.position, 0.5f, enemyLayer)) { Debug.Log("Player is colliding with an enemy"); } } }
레이어 및 레이어마스크 사용의 이점
렌더링 관리
레이어를 사용하여 카메라가 어떤 오브젝트를 렌더링할지 결정할 수 있음.
게임 내에서 특정 오브젝트의 가시성을 제어.
충돌 감지 제어
Physics.Raycast나 Collider 컴포넌트를 사용하여 특정 레이어 간의 충돌만 감지할 수 있으며, 불필요한 계산을 줄여 성능을 향상시킬 수 있음.
상호 작용 관리
특정 레이어에 속한 오브젝트와만 상호 작용하도록 코드를 구성할 수 있음.
예를 들어, "적" 레이어와 "플레이어" 레이어가 충돌할 때만 데미지를 입히거나 체력을 감소시키는 경우.
성능 최적화
레이어와 레이어 마스크를 사용하여 불필요한 연산을 방지하고 특정 작업을 최적화할 수 있음.
게임의 성능을 향상시키고 리소스를 효율적으로 활용하는 데 도움을 줌.
코드 관리
레이어와 레이어 마스크를 사용하여 코드를 더 읽기 쉽게 만듦.
레이어 마스크를 활용하면 복잡한 조건문을 사용하지 않고도 원하는 작업을 수행할 수 있음.
레이어 비트 연산
Unity에서 게임오브젝트의 레이어를 빠르게 검사하고 조작하는 방법.
ex
levelCollisionLayer.value == (levelCollisionLayer.value | (1 << other.gameObject.layer))
1 << other.gameObject.layer
levelCollisionLayer.value | (1 << other.gameObject.layer)
지급 받은 강의 듣기(진행중)
09:00 ~ 10:00 : 알고리즘 코드카타
10:00 ~ 10:30 : 팀 회의 및 알고리즘 리뷰
10:30 ~ 14:00 :
12시-1시: 점심식사
14:00 ~ 18:00
6시-7시: 저녁식사
19:00 ~ 20:00 : 집중 코딩 시간 부족한 부분 해결해보기
20:00 ~ 21:00: TIL 작성, 마무리 회고 진행
21:00 : 내일은 위한 휴식!