Unity2D_Basic #3

haechi·2021년 7월 17일
0

unity

목록 보기
24/39

210717
Unity2D_Basic #3


  • 게임 오브젝트 생성 함수

Instantiate(원본오브젝트 정보)
original 게임오브젝트(프리팹)를 복제해서 생성(복제되는 오브젝트의 모든 컴포넌트 정보가 원본과 완전히 동일) 또한 Instantiate(GameObject original, Vector3 position, Quaternion rotation); 처럼 생성하고, 생성된 복제본의 위치를 position으로 회전을 rotation으로 설정

-회전정보를 나타내고 연산하는 방식 2가지
1.Euler(오일러)
360 각도 표현 방식

2.Quaternion(쿼터니온)
x,y,z,w 사원수 - 3개의 벡터 요소, 하나의 스칼라 요소로 구성 (4개의 -1~1사이 값)

  • GameObject clon = Instantiate(GameObject original, Vect~...)
    게임오브젝트를 복제해서 생성, 생성된 복제 오브젝트의 정보를 clone에 저장하여 현재 코드에서 clone과 방금 생성된 박스 오브젝트는 동일.

ObjectSpawner.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ObjectSpawner : MonoBehaviour
{
    [SerializeField]
    private GameObject boxPrefab;

    private void Awake()
    {
        /*  Instantiate(boxPrefab, new Vector3(3, 3, 0), Quaternion.identity); // 게임오브젝트(프리팹)를 복제해서 생성
            Instantiate(boxPrefab, new Vector3(-1, -2, 0), Quaternion.identity); */
        //Instantiate(boxPrefab, new Vector3(2, 1, 0), rotation);
        Quaternion rotation = Quaternion.Euler(0, 0, 45);

        GameObject clone = Instantiate(boxPrefab, Vector3.zero, rotation);

        clone.name = "Box001";  // 이름 설정
        
        clone.GetComponent<SpriteRenderer>().color = Color.black;   //black 색상 설정

        clone.transform.position = new Vector3(2, 1, 0);    // 위치
        clone.transform.localScale = new Vector3(3, 2, 1);  // 크기
    }
}

-실행 전 상태

-실행 후 Box001 생성

참고
https://www.inflearn.com/course/%EA%B3%A0%EB%B0%95%EC%82%AC-%EC%9C%A0%EB%8B%88%ED%8B%B0-%EA%B8%B0%EC%B4%88/dashboard

profile
공부중인 것들 기록

1개의 댓글

comment-user-thumbnail
2021년 7월 19일

엄청난 포스팅 수네요.. 존경합니다~

답글 달기