반응형

안녕하세요 ~ 오늘은 왠일로 아침에 추울 정도로 시원하더니 점심에는 또 언제 그랬냐는 듯이 더웠네요 ... 이제 날씨가 계속 덥게 하니까 심심한지 괴롭히네요.. 마치 에어컨 있던 방에서 편하게 쉬다가 밖에 나간 느낌이였습니다... 날씨자식


오늘은 오브젝트를 복제생성하는 방법에 대해 올려보려고 합니다 ! 가장 대표적인 예로는 총에서 발사되는 총알 오브젝트나 동일한 몬스터가 여러마리 나오는 방식에서 사용되는 친구에요 ~




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Instantiate : MonoBehaviour {
 
    public GameObject obj;
 
    void Update () {
        if (Input.GetMouseButtonDown (0))
        {
            GameObject ins = Instantiate(obj, obj.transform.position, obj.transform.rotation) as GameObject;
        }
    }
}
cs

마우스 좌측 클릭을 하면 obj라는 이름의 게임오브젝트를 복제하는 코드입니다.

Instantiate(obj, obj.transform.position, obj.transform.rotation)

이 부분이 복제를 시켜주는 부분인데 아주 간단합니다.

Instantiate(복제시킬 오브젝트 명, 복제시킬 오브젝트의 위치, 복제시킬 오브젝트의 회전값)

입니다. 만약 총구에서 총알이 발사되는 식으로 만들고 싶다면 복제시킬 오브젝트의 위치를 총구의 위치로 놓고 복제시키면 되겠죠 ?


작성한 스크립트를 아무곳에나 추가시켜주고 (저는 Player 오브젝트에 넣었습니다.) obj 라는 Gameobject를 public으로 선언해놨기 때문에 인스펙터 창에 복제시킬 오브젝트를 드래그드랍으로 넣어주세요. (저는 Ball 이라는 이름의 오브젝트를 만들어 넣었습니다.)


그리고 플레이 해서 마우스 좌클릭을 하시면 obj에 들어가있는 Ball 이라는 오브젝트의 회전값, 위치값을 가지고 생겨나게 됩니다 ! 저는 일부러 Physics Material을 생성해서 공처럼 통통 튕기도록 했어요 ~




항상 시간은 모자른데 하고싶은 마음은 없고 어영부영 조금씩 해놔도 뒤돌아보면 해놓은게 없어보여서 걱정이 이만저만이 아닌 요즘입니다... 여러분들은 걱정거리 없이 행복한 하루만 되셨으면 좋겠네요 ! 

개발자 분들에게 조금이라도 도움이 되었으면 좋겠습니다 ~

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기