이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
배열
하나의 변수 이름으로 여러개 데이터를 담을 수 있는 묶음형 변수입니다. 아래와 같이 선언합니다.
배열의 사용법
배열을 선언한 후 할당은 '배열이름[인덱스] = 할당값' 의 방법으로 합니다. 배열의 인덱스의 접근도 '배열이름[인덱스]' 가능합니다.
using UnityEngine; using System.Collections; public class Sample : MonoBehaviour { int[] num = new int[5]; // Use this for initialization void Start () { num [0] = 1; num [1] = 1; num [2] = 1; num [3] = 1; num [4] = 1; print (num [4]); } // Update is called once per frame void Update () { } }
인스펙터에서의 배열 사용법
위처럼 스크립트 내에서 배열에 할당해줄 수도 있지만, public 으로 선언하여 오브젝트 드래그를 통해 직접 할당하는 방법도 있습니다. 먼저 아래와 같이 public으로 배열을 선언해줍니다.
using UnityEngine;
using System.Collections;
public class Sample : MonoBehaviour {
public int[] array;
// Use this for initialization
void Start () {
}
void OnMouseDown()
{
print (array.Length);
}
// Update is called once per frame
void Update () {
}
}
잠시 기다리면 배열명이 나오고, 사이즈를 입력하면 배열의 Element들이 나타납니다.
위의 스크립트에서 마우스가 클릭되었을 때 배열의 길이를 찍도록 합니다. 배열의 크기는 배열명.Length로 알 수 있습니다.
배열 탐색
1. 위와 같이 카메라를 클릭한 상태에서 화면을 (윈도우 : alt,ctrl 맥 : option,command)를 이용해 원하는 초점으로 맞춰준 후 Align With View를 통해 카메라의 초점을 맞춰줍니다. 이렇게 하면 게임 실행 시 사용자가 지정한 메인 카메라의 초점으로 게임을 관찰하게 됩니다.
2. 필자는 위와 같이 초점을 맞추었습니다.
3. 큐브를 4개 생성합니다.
4. 생성한 큐브 4개의 이름을 차례로 Enemy 라는 이름을 붙여줍니다.
5. 동떨어진 큐브는 Hero로 붙여주도록 합니다. 그리고 새로운 스크립트의 이름을 Hero로 생성 후 붙여줍니다.
6. Hero 스크립트에 public으로 GameObject 타입의 변수를 선언해줍니다.
7. Enemy 4개를 드래그앤 드롭하여 배열에 붙여줍니다.
8. 프로젝트 탭에서 오른쪽 마우스 클릭 후 Material 객체를 만들어줍니다.
9. 이름을 Green 으로 해주고 인스펙터 창에서 Main Maps - Albedo에서 색상을 바꿔줍니다.
10. 생성된 Material을 Enemy 객체들에 드래그 앤 드롭해줍니다.
11. Hero를 클릭할 때마다 Enemy 배열의 처음부터 마지막까지 오브젝트의 색상이 빨강으로 바뀌도록 위와 같이 코딩합니다.
오브젝트의 색상을 바꾸는 방법은 위와 같이 오브젝트 인스펙터 창에 Renderer 컴포넌트의 Material 을 직접 바꿀 수 있습니다.
우리는 코드 내에서 바꿔야 하므로 위와 같은 코드를 사용합니다. (Unity 5 ver)
13. 이제 Hero를 클릭하면 배열을 하나하나 탐색하며 Enemy 오브젝트가 빨강으로 변하는 것을 볼 수 있습니다.
'Frontend > Unity' 카테고리의 다른 글
[유니티 C# 기초 강의] 10. 클래스와 상속 (2) | 2016.07.25 |
---|---|
[유니티 C# 기초 강의] 9. 프로퍼티 (8) | 2016.07.25 |
[유니티 C# 기초 강의] 8. 반복문 (2) | 2016.07.25 |
[유니티 C# 기초 강의] 6. 조건문 (3) | 2016.07.24 |
[유니티 C# 기초 강의] 5. 열거형 (12) | 2016.07.24 |
[유니티 C# 기초 강의] 4. 주석 (0) | 2016.07.24 |