프리 팹 및 인스턴스화 이해
개체를 인스턴스화하고 파괴하는 것은 게임 플레이 중에 매우 중요한 것으로 간주됩니다. 인스턴스화는 단순히 존재하는 것을 의미합니다. 게임에서 아이템이 나타나거나 "스폰"되고, 적들이 죽고, GUI 요소가 사라지고, 게임 내에서 항상 장면이로드됩니다. 필요하지 않은 물건을 올바르게 제거하는 방법과 그런 다음 가져 오는 방법을 아는 것이 훨씬 더 중요해집니다.
먼저 무엇을 이해합시다 prefabs아르. Prefab은 Unity에서 인스턴스화가 작동하는 방식을 이해하는 데 중요한 것으로 간주됩니다.
Prefabs 같다 blueprintsGameObject의. 프리 팹은 어떤면에서copy장면을 만들 때 존재하지 않더라도 복제하여 장면에 넣을 수있는 GameObject의 즉, 프리 팹을 사용하여dynamically generate GameObjects.
프리 팹을 만들려면 씬 계층에서 원하는 게임 오브젝트를 프로젝트로 드래그하기 만하면됩니다. Assets.
이제 GameObject를 인스턴스화하기 위해 Instantiate()스크립트의 메소드. 이 방법은MonoBehaviour, GameObject를 매개 변수로 사용하므로 생성 / 복제 할 GameObject를 알고 있습니다. 또한 새로 인스턴스화 된 개체의 변환 및 부모 지정을 변경하기위한 다양한 재정의가 있습니다.
새로운 인스턴스화를 시도해 보겠습니다. hexagon 때마다 Space 키를 눌렀습니다.
라는 새 스크립트를 만듭니다. Instantiator열어보세요. 에서Update 방법, 아래 주어진 코드를 입력하십시오.
여기에서 우리는 GetKeyDown 의 방법 Input클래스를 사용하여 플레이어가 마지막 프레임 동안 특정 버튼을 눌렀는지 확인합니다. 계속 확인하기를 원하기 때문에Update, 초당 60 회 실행됩니다. GetKeyDown 메서드는 다음을 반환합니다.true 키가 KeyCode enum (표준 키보드에서 가능한 모든 키를 나열)은 해당 프레임에서 눌려집니다.
public class Instantiator : MonoBehaviour {
public GameObject Hexagon;
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Space)) {
Instantiate(Hexagon);
}
}
}
맨 위에있는 공개 GameObject 선언은 이전 레슨에서 Rigidbody2D 용으로 만든 것과 유사한 슬롯을 만듭니다. 이 슬롯은prefabs (편집기 시간) 및 gameObjects 그러나 (런타임에서).
스크립트를 저장하고 컴파일합니다. 완료되면 새로 만들고empty 오브젝트 계층 구조 오른쪽 클릭 메뉴로 이동하여 Create Empty.
이 개체의 이름을 다음과 같이 인식 할 수있는 이름으로 지정하십시오. Instatiator Object새로 만든 스크립트를 여기에 첨부합니다. GameObject에 대해 나타나는 슬롯에서 우리가 만든 프리 팹을 드래그합니다.
지금 게임을 실행하면 스페이스 바를 누르면 프리 팹을 만드는 데 사용한 것과 동일한 새로운 Hexagon 개체가 생성됩니다. 개체 계층 구조에서 생성되는 각 육각형을 볼 수 있습니다. 게임에 표시되지 않는 이유는 당분간 모두 생성되고 있기 때문입니다.exactly 하나 이상.
다음 강의에서는 객체 파괴의 개념을 이해할 것입니다.