본문 바로가기
제출용/TIL

내일배움캠프 33일차 TIL + 플레이어 데미지 처리 이론

by 유린테 2024. 5. 31.

TryGetComponent

겟컴포넌트랑 비슷하지만, 특정 컴포넌트가 게임오브젝트에 연결되어있는지를 확인할 수 있다!

>> True, False값을 반환하게 되는 것

 

ex. TryGetComponent Riggidbody~ 를 사용했을 때

만약에 리지드바디가 있으면 true. 없으면 False를 반환하게 된다.

 

TryGetComponent 메서드 형식

public bool TryGetComponent<T>(out T component) where T : Component;

T = 가져오려는 컴포넌트의 타입 / MonoBehaviour 를 상속한 컴포넌트는 모두 사용가능

component = 컴포넌트를 가져올 때 사용되는 out 매개변수

 

 

사용예시

using UnityEngine;

public class ExampleScript : MonoBehaviour
{
    private void Start()
    {
        // 게임 오브젝트에 Rigidbody 컴포넌트가 있는지 확인하고 가져옵니다.
        Rigidbody rb;
        if (TryGetComponent<Rigidbody>(out rb))
        {
            // Rigidbody 컴포넌트가 있다면 해당 컴포넌트로 원하는 동작을 수행합니다.
            rb.AddForce(Vector3.up * 100f);
        }
        else
        {
            // Rigidbody 컴포넌트가 없다면 다른 처리를 수행합니다.
            Debug.Log("Rigidbody component not found.");
        }
    }
}

겟컴포넌트는 컴포넌트가 없으면 Null 오류(예외)가  나는데,

트라이겟컴포넌트는 컴포넌트가 없어도 예외를 발생시키지 않고, 있으면 해당 컴포넌트를 가져와서 사용

좀더 안전하게 컴포넌트를 가져오고 사용할 수 있다

(좀 더 안전하게 예외처리가 가능함)

 

 

카메라 절두체

 

카메라 절두체 (뷰 절두체)

피라미드 같은 모양의 윗부분을 밑면에 병렬로 잘라낸 입체 형상인 절두체를 카메라 렌더링에 적용

작은 사각형과 큰 사각형 사이 (절두체 영역)에 있는 부분만 카메라에 담김 

절두체 영역을 시야범위 FOV 라고 표현

NearClippingPlane (멀리 있는 사각형), FarCliipingPlane (가까이 있는 사각형) 을 넓히고 좁히면서

절두체 모양을 바꿔 렌더링 범위를 지정할 수 있음

 

 

코루틴 Coroutine

 

작업을 다수의 프레임에 분산하는 메서드

코루틴은 실행을 일시정지하고 제어를 유니티에 반환하지만 중단한 부분에서 다음 프레임을 계속할 수있음

* 코루틴은 스레드가 아니라는 점을 명심해야 한다

* 코루틴의 동기 작업은 여전히 메인스레드에서 실행됨

 

 

동기와 비동기

 

동기

클라이언트 > 서버 ( 서버 하는동안 클라이언트는 작업 못함)

하고 넘기고 하고 넘기고 이런식인듯

각각의 작업이 끝나기 전까진 다음 작업을 수행하지 못함

 

비동기

동시에 진행할 수 있다!

끊임없이 진행하면서 서버한테 리퀘스트를 보낼 수 있음

 

 

코루틴은 동기? 비동기?

현상을 볼 때는 동시에 진행되는 것 처럼 보여 비동기처럼 보이지만

사실 동기임

오른쪽 처럼 부르면 잠깐 갔다가 돌아왔다가 이런식임

성언튜터님은 비동기적 동기 라고 부른다고 함

현상은 비동기 실제는 동기