상세 컨텐츠

본문 제목

유니티엔진으로 만든 2D게임 분석하기_4

안드로이드+드론 제작

by 김일국 2020. 12. 12. 17:18

본문

유니티에디터에서 오브젝트를 계층구조(아래화면)에 등록하지 않고, Instantiate함수로 오브젝트를 복제해서사용.

지난시간에 만든 Player스프라이트2D오브젝트를 에셋에 프리펩으로 등록 후 

등록한 프리펩을 빈 오브젝트(ObjectSpawner) 생성 후 현재 C#스크립트항복의 Player속성값으로 등록(아래)

위 에서 추가된 C#스크립트 ObjectSpawner.cs (아래)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectSpawner : MonoBehaviour
{
    //유니티 IDE에서 빈 오브젝트(ObjectSpawner) 생성 후 c#파일 생성
    //이후 지난시간에 만든 Player스프라이트2D오브젝트를 에셋에 프리펩으로 등록
    //위 등록한 프리펩을 빈 오브젝트(ObjectSpawner) 생성 후 현재 C#스크립트항복의 Player속성값으로 등록
    [SerializeField]
    private GameObject Player;
    // Start is called before the first frame update
    void Awake()
    {
        //1.Instantiate(Player);//Palyer오브젝트 복사
        //2.오브젝트 복사 옵션(오브젝트명, 위치, 회전정보);
        Instantiate(Player, new Vector3(3, 3, 0), Quaternion.identity);
        //3.오브젝트 회전값 쿼터니온으로 설정(오일러각도Euler값)
        Quaternion rotation = Quaternion.Euler(0, 0, 45);
        //4.방금 생성된 오브젝트의 복제정보를 가지고, 설정하기
        GameObject clone = Instantiate(Player, Vector3.zero, rotation);
        //오브젝트 이름 변경
        clone.name = "NewPlayer";
        clone.GetComponent<SpriteRenderer>().color = Color.red;
        //방금 생성된 게임 오브젝트의 위치 변경
        clone.transform.position = new Vector3(-10, -3, 0);
        //복제된 오브젝트 크기변경
        clone.transform.localScale = new Vector3(2, 2, 1);
    }
}

관련글 더보기

댓글 영역