오브젝트를 생성했다가 생성한 오브젝트를 제거하고 다시 오브젝트를 생성하는 방법을 사용해야 했는데, 기본적으로 생성한 오브젝트를 사용하여 파괴한 경우 다시 생성하는 방법을 알 수 없어 일단은 복제하는 방법으로 오브젝트를 동적으로 생성하는 방법을 생각해 보았다.

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
31
32
33
34
35
36
37
38
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DynamicCreateObject : MonoBehaviour
{
    // 원본 오브젝트
    GameObject cube_red;
    GameObject cube_blue;
    GameObject cube_green;
    GameObject cube_yellow;

    GameObject new_cube;
    Vector3 positionValue;

    void Start()
    {
        // 원본 오브젝트를 이름으로 찾음
        this.cube_red = GameObject.Find("Cube_Red");
        this.cube_blue = GameObject.Find("Cube_Blue");
        this.cube_green = GameObject.Find("Cube_Green");
        this.cube_yellow = GameObject.Find("Cube_Yellow");

        // 위치를 랜덤으로 선정하고 오브젝트를 복사
        positionValue = new Vector3(Random.Range(-10.0f, 10.0f), 1, Random.Range(-10.0f, 10.0f));
        new_cube = (GameObject)Instantiate(cube_red, positionValue, Quaternion.identity);
        positionValue = new Vector3(Random.Range(-10.0f, 10.0f), 1, Random.Range(-10.0f, 10.0f));
        new_cube = (GameObject)Instantiate(cube_blue, positionValue, Quaternion.identity);
        positionValue = new Vector3(Random.Range(-10.0f, 10.0f), 1, Random.Range(-10.0f, 10.0f));
        new_cube = (GameObject)Instantiate(cube_green, positionValue, Quaternion.identity);
        positionValue = new Vector3(Random.Range(-10.0f, 10.0f), 1, Random.Range(-10.0f, 10.0f));
        new_cube = (GameObject)Instantiate(cube_yellow, positionValue, Quaternion.identity);
    }

    void Update()
    {
    }
}

복사된 오브젝트는 Cube_Red(Clone)과 같은 이름을 가지게 되므로 컨트롤을 하는 경우 해당 이름으로 오브젝트를 찾아서 사용하면 된다!

결과

WRITTEN BY

배진오

하고싶은 건 다 하면서 사는게 목표
im@baejino.com

comments powered by Disqus