코딩의 신 26

김동관·2025년 11월 6일

오늘 한 일

오늘은 개인강의를 위주로 들으며 개념정리를 학습했습니다.

Ray - 직선의 시작점(origin)과 방향(direction)
Ray ray = new Ray(transform.position, transform.forward); 오브젝트
Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); 카메라 중심
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 마우스

Raycast - 눈에 보이지 않는 광선(Ray)에 맞은 물체가 무엇인지 여부를 판단한 뒤 여러 가지 후처리를 하는 방식.
Ray, RaycastHit, MaxDistance, LayerMask 등의 옵션

RaycastHit - Raycast에 의해 검출된 객체의 정보가 담겨있다.
RaycastHit.point - 레이캐스팅이 감지된 위치
RaycastHit.distance - Ray의 원점에서 충돌 지점까지의 거리
RaycastHit.transform - 충돌 객체의 transform에 대한 참조

TryGetComponent는 Unity에서 사용하는 메서드로, 게임 오브젝트의 컴포넌트를 가져오는 기능을 제공합니다. 이 메서드를 사용하면 특정 컴포넌트가 게임 오브젝트에 연결되어 있는지 확인하고, 연결되어 있다면 해당 컴포넌트를 가져올 수 있습니다.

T: 가져오려는 컴포넌트의 타입입니다. MonoBehaviour를 상속한 컴포넌트는 모두 사용 가능합니다.
component: 컴포넌트를 가져올 때 사용되는 out 매개변수입니다.

TryGetComponent는 컴포넌트가 없어도 예외를 발생시키지 않고, 컴포넌트가 있으면 해당 컴포넌트를 가져와서 사용할 수 있습니다. 이를 통해 더 안전하게 컴포넌트를 가져오고 사용할 수 있습니다.

Coroutine은 작업을 다수의 프레임에 분산하는 메서드입니다. Unity에서 코루틴은 실행을 일시 정지하고 제어를 Unity에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수 있는 메서드입니다.
하지만 코루틴은 스레드가 아니라는 점을 명심해야 합니다. 코루틴의 동기 작업은 여전히 메인 스레드에서 실행됩니다.

인터페이스를 통해 클래스들은 공통적인 동작을 정의하고, 이러한 동작들을 구현하는 클래스들은 해당 인터페이스를 구현(implement)함으로써 공통 규약을 준수할 수 있습니다.
인터페이스를 설명하는 주요 특징은 다음과 같습니다.
추상화: 인터페이스는 추상적인 개념으로, 실제로 구현된 메서드가 없고, 메서드의 시그니처만을 가집니다. 따라서 인터페이스는 인스턴스화될 수 없으며, 구현체가 필요합니다.
메서드 시그니처: 인터페이스는 구현 클래스가 반드시 구현해야 하는 메서드들의 시그니처를 정의합니다. 메서드의 이름, 매개변수, 반환 타입이 포함됩니다.
다중 상속 가능: 클래스는 하나의 클래스만 상속받을 수 있지만, 여러 인터페이스를 동시에 구현할 수 있습니다. 이를 통해 다중 상속을 흉내내는 것이 가능합니다.
강제적 구현: 클래스가 인터페이스를 구현하면, 인터페이스에서 정의한 모든 메서드를 반드시 구현해야 함. 이로 인해 정의된 동작을 강제로 구현하게 됩니다.

인터페이스를 사용하는 이유
코드는 결합도가 낮아야 한다.
결합도가 높다는 것은 클래스 간 의존도가 높다는 것 → 유연성이 떨어지게 된다.
구체적 구현 클래스가 아닌 작은 단위의 여러 인터페이스를 사용하자.

profile
아이디어 뱅크

0개의 댓글