티스토리 뷰
여러개의 GameObject를 배열에 등록해 두고 이를 한꺼번에 관리하기 위한 예제이다.
Cube로 GameObject 만들기
먼저 예제를 위해 Cube를 다섯개 만든다. 다섯개의 이름은 편한데로 정한다. 나는 player1, player2, player3, player4, player5로 정했다.

Cube에 Tag 부여하기
중요한 것은 GameObject.FindGameObjectsWithTag를 사용하기 위해서 Tag를 다섯개의 Cube에 대해서 동일하게 정해줘야 한다. 기본적으로 inspector 창에서 tag란을 보면 untagged로 되어 있다.

여기서 기존에 있는 Tag를 선택할 수도 있고 새로 만들 수도 있다. 나는 드롭다운 메뉴 중 'Add Tag'를 선택하고 추가로 box_player라는 새로운 tag를 추가하였고 다음과 같이 Tag를 box_player로 지정하였다. 5개의 박스에 각각 클릭하고 tag를 box_player로 바꾸어 준다.

스크립트 작성하고 빈 GameObject에 생성
새로운 스크립트를 생성한다. 이름은 BoxController로 정하였다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxController : MonoBehaviour
{
public GameObject[] boxPlayers;
// Start is called before the first frame update
void Start()
{
boxPlayers = GameObject.FindGameObjectsWithTag("box_player");
print("number of BoxPlayers: " + boxPlayers.Length);
}
// Update is called once per frame
void Update()
{
for (int i = 0; i < boxPlayers.Length;i++)
{
boxPlayers[i].transform.Rotate(Vector3.up, 60.0f * Time.deltaTime);
}
}
}
FindGameObjectsWithTag("box_player")라는 명령으로 box_player라는 tag명을 갖는 GameObject들을 boxPlayers 배열에 등록하게 된다. 등록된 GameObject들은 Update메소드에서 메프레임마다 접근하여 회전 변환을 수행하도록 한 코드이다.
빈 GameObject를 생성하고 이름을 다음과 같이 PlayerController로 바꾸었다. 그리고 작성한 스크립트를 끌어다 PlayerController에 놓는다.
실행해보기
디버깅이 완료되었으면 실행시켜본다. 다음과 같이 다섯개의 cube가 동일하게 회전하는 것을 알 수 있다.

더불어 console창에서는 box_player라는 tag명을 가진 GameObject를 다섯개를 배열에 저장하였으므로 다음과 같은 결과를 디스플레이 하고 있다.

'Programming > Unity' 카테고리의 다른 글
[단축키] Unity 스크립트에서 지원 메소드 추가 (0) | 2019.07.20 |
---|
- Total
- Today
- Yesterday
- comfyUI
- Arduino
- 파이썬
- Python
- ssh
- Stable Diffusion
- WSL
- 메이커
- git
- conda
- cura
- 3d프린터
- docker
- 단축키
- Linux
- MicroBit
- vvvv
- Fusion360
- Maker
- 한글
- ubuntu
- 우분투
- nvidia
- fablab
- CAD
- nodejs
- Streamlit
- tensorflow
- vscode
- opencv
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |