목표
- Script의 개념과 생성 방법을 이해한다.
Component
Component는 특정 환경에서 동작하는 구성요소(부품)를 말한다.
예를들어 물리 컴포넌트에는 물체의 질량 정보를 가지고 있는 Rigidbody, 충돌을 감지하는 Box Collider 등이 있다.
GameObject에 Rigidbody 컴포넌트를 추가하고, Play를 누르면 중력이 적용된 모습을 확인할 수 있다.
Script는 Unity에서 다른 컴포넌트와 마찬가지로 게임 오브젝트에 적용해 사용할 수 있다.
인스펙터 창에서 Add Component를 이용해 컴포넌트를 추가하거나, 적용된 컴포넌트를 확인할 수 있다.
Component의 종류는 상단 메뉴에서 확일 할 수 있다.
Script
유니티에서는 Script는 Component와 같은 의미로 사용할 수있다.
Script는 사용자가 생성할 수 있으며, 여러 종류가 있다. (현재 C#만 남아있음)
- 생성 방법은 상단 메뉴의 Assets > Create 창에서 C#을 선택하거나, Project 창에서 오른쪽 버튼을 눌러 생성할 수 있다.
- 스크립트는 입력, 캐릭터, 환경, 게임의 정보 등을 관리하는 동작을 정의할 수 있다.
예시
- 다음 예제에서 R,G,B 키를 입력받아 큐브의 색상을 변경하는 예제를 만들어보자.
- 근데 이 예제를 이해하려면, GetComponent, Input, Data Type 등 이후에 설명되는 지식이 필요하다.
- 처음 스크립트를 작성하는 경우, Script에 정의한 입력에 따라, GameObject의 색깔이 변하게 할 수 있구나 정도를 이해하고 넘어가면 될 것 같다.
1.스크립트 생성
- MaterialColorController라는 스크립트를 생성해보았다.
Tip
- 혹시 Script의 이름을 변경하고 싶으면, Script 파일을 클릭하고 Enter를 누르면 Rename할 수 있다. (혹은 오른쪽 버튼을 누른다.)
- Script 파일의 이름을 변경한 경우, 반드시 Source Code에서 ClassName도 동일한 명칭으로 변경해줘야 한다.
2. 소스코드
- 기본적으로 랜더링되는 오브젝트에는 MeshRenderer가 붙어있다.
- MeshRenderer의 materials에 보면, 현재 적용된 메터리얼을 확인할 수 있다.
- Color의 맵핑은 Color 클래스를 참조한다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// 예제에서는 MaterialColorController라는 이름의 Script를 생성하였다.
public class MaterialColorController : MonoBehaviour
{
private Color selectColor;
private MeshRenderer meshRenderer;
// Start는 최초에 1번만 호출되며, Update가 호출되기 전에 호출된다.
void Start()
{
// GetComponent를 사용하여, GameObject에 포함되어 이쓴 MeshRenderer를 가져왔다.
meshRenderer = this.GetComponent<MeshRenderer>();
}
// Update는 매 프레임이 업데이트 되는 시점에 호출된다.
void Update()
{
// 입력에는 Input를 사용하다.
// 키의 상태는 GetKey(키가 눌리고 있을 때), GetKeyUp(키가 올라갔을 때), GetKeyDown(키를 눌렀을 때) 등으로 구별된다.
// 키의 맵핑은 KeyCode를 사용하면 된다.
if (Input.GetKeyDown(KeyCode.R))
{
// 기본적으로 랜더링되는 오브젝트에는 MeshRenderer가 붙어있다.
// MeshRenderer의 materials에 보면, 현재 적용된 메터리얼을 확인할 수 있다.
// Color의 맵핑은 Color 클래스를 참조한다.
meshRenderer.material.color = Color.red;
}
if (Input.GetKeyDown(KeyCode.G))
{
meshRenderer.material.color = Color.green;
}
if (Input.GetKeyDown(KeyCode.B))
{
meshRenderer.material.color = Color.blue;
}
}
}
3. Add Component
- 생성한 Cube를 선택하고, Inspector 창에서 Add Componet를 선택한다.
4. 실행해보기
- Script가 Add된 상태에서 Play를 누른다.
- 이후 GameScene에서 'R', 'G', 'B' 버튼을 눌러 색상 변경을 확인한다.
'프로그래밍 > Unity C#' 카테고리의 다른 글
[Unity] Tutorial 05 - Beginner Gameplay Scripting (IF Statements) (0) | 2019.05.27 |
---|---|
[Unity] Tutorial 05 - Beginner Gameplay Scripting (Variables and Functions) (0) | 2019.05.27 |
[Unity] Tutorial 04 - Essential Unity Concepts (Layer) (0) | 2019.05.14 |
[Unity] Tutorial 04 - Essential Unity Concepts (Tag) (0) | 2019.05.14 |
[Unity] Tutorial 04 - Essential Unity Concepts (Prefabs) (0) | 2019.05.13 |