Unity 기초

머선러닝·2023년 10월 1일
0

스크립트 기초

  • 스크립트를 게임 오브젝트에 매칭하면 해당 오브젝트는 스크립트의 내용을 수행할 것 임
  • 스크립트에서는 해당 오브젝트의 기본 속성들에 접근할 수 있다.
# 예시
transform.position += dir * speed * Time.deltaTime;
  • 클래스 변수를 전역변수로 선언하면 유니티 에디터에서 해당 변수가 노출되고 변경이 가능하다.

스크립트에서 게임 오브젝트 다루기

gameObject

스크립트에서 다른 게임 오브젝트 받기

  1. 스크립트 작성
# 예시
public class PlayerFire : MonoBehaviour
{
	public GameObject bulletFactory;
    public GameObject firePosition;
}
  1. 게임 오브젝트 속성에서 다른 오브젝트 선택

사용자 입력 처리

  • Input manager: [Edit]-[Project Settings]-[Input]
  • 값을 받는 방법
# 예시
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");

Vector3

  • Docs.
  • C#에서 벡터를 다루기 위하여 사용하는 구조체
  • Vector3는 new로 생성해서 사용하는데 메모리 누수 문제는 없는건가?: 예 (근거)

deltaTime

  • dt의 개념
  • 컴퓨터의 성능에 따라 결과가 달라지는 것을 막아주기도 한다.

프리팹(Prefab)

  • 게임 오브젝트를 파일 에셋으로 만든 것 이다.
  • 동일한 게임 오브젝트를 중복으로 만드는 노가다를 막아주는 기능이다.
  • 게임 오브젝트는 에셋으로 끌어오고 게임 오브젝트를 삭제하면 된다.

충돌

  • 충돌을 검사하는 것은 물체의 개수가 늘어나면 검사의 횟수가 급격히 늘어나기 때문에 보통은 움직이는 물체를 기준으로 검사를 수행한다. 유니티는 이러한 물체를 Rigidbody라고 부른다.
  • Add Componet를 통하여 게임 오브젝트에 Rigidbody라는 속성을 추가할 수 있다.
  • Is Kinematic이라는 옵션은 참으로 설정하면 물리적인 행동을 하지 않는다. 좀 더 자세히 이해하려면 물리에서 Kinetic과 Kinematic의 차이에 대하여 공부해야할 것 같다.

충돌 이벤트

  • 게임 오브젝트는 충돌이 발생하면 실행되는 이벤트 함수를 가지고 있다.
  • 충돌도 '충돌 시작', '충돌 중', '충돌 끝'으로 구분할 수 있다.
private void OnCollisionEnter(Collision other)
{
	# 충돌 시작
}

private void OnCollisionStaty(Collision other)
{
	# 충돌 중
}

private void OnCollisionExit(Collision other)
{
	# 충돌 끝
}

오브젝트 지우기

Destroy(gameObject)

Rigidbody vs Box Collider

Tag, Layer

  • 게임 오브젝트를 그룹으로 묶어 관리할 수 있는 기능을 제공한다. 특정 Layer 간의 충돌을 제어하는 등의 역할도 수행할 수 있다.
  • https://tech-interview.tistory.com/204
profile
머선러닝, 인공능지를 연구합니다.

0개의 댓글