본문 바로가기

프로그래밍/Unity

기본 클래스 정리

스크립트 주요 클래스

: 초기에 많이 사용되는 기본 클래스에 대해 정리.

상세한 내용은 Help > Scripting Reference 에서 찾아볼 수 있다.

속성은 소문자로 시작하고, 메쏘드는 대문자로 시작하는 룰을 따르고 있음.

스크립트의 속성을 public으로 설정하면, Inspector에서 드래그&드롭으로 그 값을

설정할 수 있다.

   

Object

unity3d 에서 씬에 사용되는 오브젝트,컴포턴트의 기본 클래스로 GameObject, Component

클래스는 이 클래스를 상속받아 구현되어 있다.

name : 오브젝트명

Destroy() : 오브젝트 제거

   

GameObject

unity3d의 씬(sence)에 사용되는 오브젝트는 GameObject 클래스의 파생 클래스이다.

transform

rigibody

camera

audio

와 같은 항목을 속성으로 가지고 있어, 각종 변형이나 이동, 소리등을 바로 처리할 수 있다.

   

Component

위 게임오브젝트의 속성과 관련한 기본 클래스이다. GameObject의 각 속성들은 이 클래스의 파생

클래스이다.

Component 클래스는 GameObject에 attach(첨부)되어 동작한다.

예를 들어 Sphere GameObject를 하나 만들고, 해당 오브젝트를 Hierachy에서 선택하면

Inspector에 보이는 내용이 이 Component 관련 내용이다.

   

   

   

   

만약 이 GameObject에 물리 컴포넌트(강체)를 적용하고 싶으면, Component 메뉴에서

rigidbody를 선택하면, 해당 컴포넌트가 attach된다.

   

Rigidbody

강체라는데.. 음... 일반적인 물체라 생각하면 된다.

중력, 속도등과 충돌 이벤트 정보를 가지고 있어 많이 사용되는 컴포넌트 이다.

velocity : 속도

useGravity : 중력적용

MovePosition() : 위치 이동

OnCollisionEnter() : 충돌

OnCollisionExit()

등이 많이 사용되는 속성, 메쏘드 이다.

AddForce() / AddTorque() 등으로 힘을 조절할 수도 있다.

   

MonoBehaviour

스크립트의 베이스 클래스이다. 모든 스크립트는 이를 상속받아 구현하게 되는데,

각 컴포넌트에서 전달하는 이벤트를 실제로 처리하게 된다.

또한, 씬 렌더링 플로우상 주기적으로 호출되는 메쏘드를 포함하고 있다.

Start()

Restart()

Update()

등과 같은 메쏘드 들인데, 이를 오버라이드해 구현하면 초기화(Start), 렌더링(Update) 같은

루프중에 데이터를 업데이트 할 수 있다.

   

OnCollisionEnter

on_mouseUp

OnGUI

등의 메시지 핸들러로 각 컴포넌트에서 보내오는 이벤트를 전달받아 해당 처리를 수행할 수 있다.

   

Transform

GameObject 또는 Component의 변화에 대한 객체이다.

void Translate(Vector3, Space )

void Translate(flot, flot,flot, Space )

void Translate(Vector3, Transform )

요런 메쏘드들을 제공해서 이동과 회전등을 처리할 수 있다.

   

Time

타이머 객체

time : 프레임이 시작된 후 현재까지의 시간

deltaTime : 마지막 프레임이 보여진 이후의 경과 시간

   

Input

키입력 관련 클래스

static bool GetKey( KeyCode.Space ) : 해당키가 눌렸는지

static float GetAxis("Horizontal") : 좌우에 해당하는 <- , -> 키가 눌렸는지에 대한 값을 반환

-1, 1 값을 가지므로 보통 시간이나 속도값을 곱해서 사용.

   

Vector3

벡터값을 위한 클래스

단위벡터를 만들거나 오브젝트의 거리, 각도, 반사된 벡터등을 얻는 데 사용된다.

각 방행에 대한 기본 값은 static 변수로 정의되어 있으므로 해당 값을 가져와 사용해도 된다.

이중 전방은 z축 기준이며, y 가 up, z가 right가 된다.

static Vector3.zero : Vector3(0,0,0)

static Vector3.forward : Vector3(0,0,1)

static Vector3.up : Vector3(0,1,0)

static Vector3.right : Vector3(1,0,0)

   

Scale

Cross

Dot

Reflect

Distance

벡터 내/외적, 벡터 곱등 벡터 계산과 관련한 메쏘드를 제공한다.

   

스크립트 예 ( unity3dstudent.com 참조 )

1. 화면에 두개의 오브젝트 floor, wall 에 충돌했을때의 이벤트 처리

   

2. box1 오브젝트에 충돌하면 카메라가 트랙킹하는 스크립트

카메라 오브젝트를 public 속성으로 부여해 에디터에서 해당 카메라를 드래그해 설정하도록 구성

   

3. 키보드 관련 처리

   

4. 스페이스바가 눌리면, 특정 게임 오브젝트를 복사해 앞쪽으로 날리는 스크립트

   

'프로그래밍 > Unity' 카테고리의 다른 글

[Unity] 인스펙터에 UI 추가하기  (0) 2011.06.15
2D를 위한 Plane 생성  (0) 2011.05.30
Physics.Raycast  (0) 2011.05.13
2D 게임을 위한 몇가지  (0) 2011.05.09
터치 입력  (0) 2011.04.04
스크립트에서 오브젝트/컴포넌트 접근 및 활성화  (0) 2011.02.11
강체-RigidBody 기본속성  (0) 2011.02.03
[Unity3D] 오브젝트 회전 - Quaternion  (0) 2011.02.01
FBX 에니메이션 임포트  (0) 2011.01.27
캐릭터 컨트롤 하기  (4) 2011.01.20