유니티를 활용한 프로젝트를 구현하기에 앞서 기초적인 유니티 용어를 알아본다.
- Rigidbody : 물리 기능 담당 컴포넌트
- Mhy Rigidbody 에 생성한 리지드 바디 컴포넌트 연결
- 스크립트의 public 변수는 인스펙터에서 변경 가능
- Plane 크기 : 가로 세로 10 유닛 -
- 1유닛 - Cube한 변의 길이
오브젝트 생성 → 머티리얼 생성(색 등 외관 지정 ) → 오브젝트에 머티리얼 설정
머티리얼
- 오브젝트의 컬러를 결정
- 셰이더 + 텍스쳐가 합쳐진 에셋 → 오브젝트의 픽셀 컬러 결정
- 셰이더 : 주어진 입력에 따라 픽셀의 최종 컬러 결정. 질감과 빛에 의한 반사와 굴절 등의 효과 생성
- 텍스쳐 : 표면에 입히는 이미지 파일
- 머티리얼 설정
- Albedo : 반사율 - 어떤 색을 반사할지 결정
태그
오브젝트 분류 , 오브젝트를 구별
GameObject
컴포넌트 입장에서 자신이 추가된 게임 오브젝트를 가리키는 변수
MonoBehaviour에서 제공
모든 컴포넌트는 게임오브젝트 변수를 이용해 자신을 사용중인 게임 오브젝트에 접근
GameObject.setActivie(boolean) : 오브젝트를 끄고 켜는 기능. 인스펙트 창에서 게임 오브젝트 이름 왼쪽에 보이는 체크 박스가 게임 오브젝트 활성화.비활성화
비활성화 : 해당 게임 오브젝트에 추가된 컴포넌트들도 함께 비활성화 되어 동작 멈춤→ 해당 씬에서 보이지 안흠
활성화 : 게임 오브젝트에 추가된 컴포넌트들이 다시 활성화되고 동작
스크립트에서 리지드바디 컴포넌트 할당
start()할 때 리지드바디를 할당한다
privage Rigidbody playRigidbody // 프라이빗으로 선언하면 인스펙터에서 필드가 표시되지 ㅇ낭흠
void Start(){
playerRigidbody = GetComponent<RigidBody>();
}
Vector3
x,y,z 원소를 가지는 타입. 위치, 크기,속도 방향 등ㅇ르 나타낼 때 주로 사용
콜라이더
트리거 콜라이더 : 충돌한 물체를 밀어내는 물리적 표면이 없음. 다른 일반 콜라이더와 겹치거나 서로 뚫고 지나갈 수 있지만 충돌 자체는 감지.
충돌이 감지되었을 때 해당 기능을 실행하는 방아쇠로 많이 사용.
프리팹
재사용할 수 있는 미리 만들어진 게임 오브젝트(에셋)파일. 비슷한 게임 오브젝트를 여러 개 만들 때 다시 매번 설정하는 번거로움을 줄일 수 있음.
충돌 이벤트 메서드
- OnTrigger
- 일반 충돌
- 일반적으로 콜라이더를 가진 두 게임 오브젝트가 충돌할 때 자동으로 실행.
- 충돌한 콜라이더는 서로 통과하지 않고 밀어냄.
- 메서드 입력으로 충돌 관련 정보가 Collision타입으로 들어옴.
- Collision 타입 : 충돌 관련 정보를 담아두는 단순한 정보 컨테이너. 입력으로 들어온 콜리전을 통해 충돌한 상대방 게임 오브젝트, 충돌 지점, 충돌 표면의 방향 등을 알 수 있음.
- OnCollision
- 충돌한 두 게임 오브젝트의 콜라이더 중 최소 하나가 트리거 콜라이더가 자동으로 실행.
- 두 게임 오브젝트가 충돌 했을 때 서로 그대로 통과.
- 입력으로 충돌한 상대방 게임 오브젝트의 콜라이더 컴포넌트가 Colider타입으로 들어옴.
- 충돌한 상대방 게임 오브젝트를 곧장 받음.
- 자신이 콜라이더가 아니어도 실행된다.
- 충돌한 두 콜라이더 중 하나 이상이 트리거 콜라이더일 때 양쪽 모두에서 onTrigger 계열의 메서드가 실행됨. 따라서 자신의 콜라이더가 일반 콜라이더라 해도 충돌한 상대방 게임 오브젝트 콜라이더가 트리거 콜라이더라면 OnTrigger 계열의 충돌 이벤트 실행