스크립트 기초
- 스크립트를 게임 오브젝트에 매칭하면 해당 오브젝트는 스크립트의 내용을 수행할 것 임
- 스크립트에서는 해당 오브젝트의 기본 속성들에 접근할 수 있다.
# 예시
transform.position += dir * speed * Time.deltaTime;
- 클래스 변수를 전역변수로 선언하면 유니티 에디터에서 해당 변수가 노출되고 변경이 가능하다.
스크립트에서 게임 오브젝트 다루기
gameObject
스크립트에서 다른 게임 오브젝트 받기
- 스크립트 작성
# 예시
public class PlayerFire : MonoBehaviour
{
public GameObject bulletFactory;
public GameObject firePosition;
}
- 게임 오브젝트 속성에서 다른 오브젝트 선택

사용자 입력 처리
- 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