[UNITY]/TIL: UNITY

[Unity] 자주 사용되는 함수 리마인드 하기

네,가능합니다 2024. 10. 22. 12:05

함수사용 예시들을 소개하며 짧은 설명을 하겠다.

 

충돌체가 트리거에 진입할때 호출되는 함수

void OnTriggerEnter(Collider other)
{
    if (other.CompareTag("Player"))
    {
        // 플레이어태그를 가진 충돌체가 트리거에 닿았을 때 실행되는 코드
        Debug.Log("플레이어가 트리거에 들어왔습니다.");
    }
}

 

 

충돌체가 트리거를 벗어날 때 호출되는 함수

void OnTriggerExit(Collider other)
{
    if (other.CompareTag("Player"))
    {
        Debug.Log("플레이어가 트리거를 빠져나갔습니다.");
    }
}

 

 

게임 오브젝트나 프리팹을 생성할 때 사용하는 함수

public GameObject enemyPrefab;

void SpawnEnemy()
{
    // 적 캐릭터를 특정 위치에 생성
    Instantiate(enemyPrefab, new Vector3(0, 0, 0), Quaternion.identity);
}

 

 

특정 함수를 일정 시간 후에 호출할 때 사용하는 함수

void Start()
{
    // 5초 후에 EndGame 함수를 호출
    Invoke("EndGame", 5f);
}

void EndGame()
{
    Debug.Log("게임이 종료되었습니다.");
}

 

 

충돌이 발생했을때 호출되는 함수

void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("Enemy"))
    {
        // 적과 충돌 시 처리할 로직
        Debug.Log("적과 충돌했습니다.");
    }
}

 

 

특정 타입의 오브젝트를 찾아 반환하는 함수

PlayerController player = FindObjectOfType<PlayerController>();

if (player != null)
{
    // 플레이어가 존재할 경우 처리
    player.TakeDamage(10);
}

 

 

레이저를 발사하여 물리적으로 충돌하는 객체를 감지하는 함수

void Update()
{
    RaycastHit hit;
    if (Physics.Raycast(transform.position, transform.forward, out hit, 100f))
    {
        Debug.Log("충돌한 오브젝트: " + hit.collider.name);
    }
}

아래는 함수시그니처
public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hit, float maxDistance = Mathf.Infinity)

 

 

마지막으로 코루틴이다.

void Start()
{ 
    StartCoroutine(WaitAndPrint());
}

IEnumerator WaitAndPrint()
{
    Debug.Log("2초가 지나면 알려드리겠습니다."); 
    yield return new WaitForSeconds(2);
    Debug.Log("2초가 지났습니다.");
}