함수사용 예시들을 소개하며 짧은 설명을 하겠다.
충돌체가 트리거에 진입할때 호출되는 함수
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초가 지났습니다.");
}
'[UNITY] > TIL: UNITY' 카테고리의 다른 글
[Unity] ObjectPool(오브젝트풀) 끝장내기 (0) | 2024.10.24 |
---|---|
시간복잡도 (0) | 2024.10.23 |
[Unity] 주변의 오브젝트를 감지하기 (0) | 2024.10.21 |
[Unity] PlayerPrefs를 이용한 랭킹시스템 (0) | 2024.10.20 |
[Unity] 로컬 멀티플레이 가이드 ! (2) | 2024.10.18 |