반응형
반응형
게임 내의 오브젝트를 복제해서 새로운 적을 생성하기 위해서 원본 오브젝트가 필요
- 원본 오브젝트는 파일로 안전하게 보관 (프리펩)
- 프리펩? 게임오브젝트를 project view에 파일로 저장해 둔 것
- 원본으로 사용된 오브젝트가 제거되면 더이상 복제 불가하기 때문
프리펩 생성 방법
- 원하는 형태로 게임오브젝트를 꾸며준다
- Hierarchy View의 게임 오브젝트를 Project View로 드래그 드롭한다
- Hierarchy View 오브젝트 삭제
Instantiate(GameObject obj)
- 게임 오브젝트를 복제해서 생성
- 모든 컴포넌트 정보가 원본과 완전히 동일
- 위 메소드를 여러개 호출 시 여러개 복제됨
- 파라미터로 Vector, Quanternion(회전 값) 적용 가능
회전값 적용
- 오일러
- 3차원 3개 각도 표현하는 3x3 크기 행렬
- 0~360 각도 표현 가능
- 연산속도 느림
- 쿼터니온
- x,y,z,w 3개의 벡터요소와 1개 스칼라 요소로 구성 (-1~1)
- 연산은 빠른데 우리가 아는 0~360 표현이 아니르모 특정 각도 표현 어려움
Instantiate에서는 각도 변수로 쿼터니온을 받음
Quaternion rotation = Quaternion.Euler(0,0,각도) 으로 오일러에서 변환 가능
Instantiate은 반환 값으로 GameObject를 반환함
GetComponent로 색깔이나 값 변경 가능
Sample
public class Prefab : MonoBehaviour
{
[SerializeField]
private GameObject prefab;
private void Awake()
{
Quaternion rotation = Quaternion.Euler(0, 0, 45);
GameObject clone = Instantiate(prefab, new Vector3(0,0,0), rotation);
clone.GetComponent<SpriteRenderer>().color = Color.white;
}
}
반응형
'Unity' 카테고리의 다른 글
게임오브젝트 삭제 함수 (0) | 2023.07.24 |
---|---|
Instantiate 활용 예제 (0) | 2023.07.23 |
게임오브젝트 물리와 충돌 (0) | 2023.07.23 |
게임 오브젝트 이동 (0) | 2023.07.23 |
이벤트 함수 (0) | 2023.07.23 |