캐릭터나 객체를 인스턴스화하고 파괴하는 것은 모든 게임에서 매우 일반적입니다. 인스턴스화란 객체를 존재하게 만드는 것을 의미합니다. 게임에서 객체가 나타나거나 생성되거나 생성되고, 적들이 죽고, GUI 요소가 사라지고, 장면이 게임에 항상 로드됩니다.
프리팹은 런타임에 복잡한 GameObject 또는 GameObject 컬렉션을 인스턴스화하려는 경우 매우 유용합니다. 코드를 사용하여 처음부터 GameObject를 생성하는 것과 비교할 때 코드를 사용하여 프리팹을 인스턴스화하는 것이 더 좋으며 많은 장점이 있습니다.
조립식 건물이 무엇인지 이해해 봅시다. Unity에서 인스턴스화가 작동하는 방식을 이해하려면 프리팹이 중요하다고 간주되기 때문입니다.
문자열 배열 자바의 경우
조립식 GameObject의 청사진과 같습니다. 따라서 프리팹은 장면을 만들 때 존재하지 않았더라도 복제하여 장면에 넣을 수 있는 게임 개체의 복사본이라고 말할 수 있습니다. 즉, 프리팹을 사용하여 GameObject를 동적으로 생성할 수 있습니다.
프리팹을 만들어 보겠습니다. 이를 위해서는 장면 계층 구조에서 원하는 GameObject를 프로젝트 자산으로 드래그해야 합니다.
자바에서 날짜 형식 지정
이제 GameObject를 인스턴스화하기 위해 스크립트에서 Instantiate() 메서드를 호출합니다. 이 메서드는 MonoBehaviour에서 사용할 수 있으며 GameObject를 매개변수로 사용하므로 어떤 GameObject를 생성하거나 복제할지 알 수 있습니다. 또한 새로 인스턴스화된 개체의 변환 및 부모 지정을 변경하기 위한 다양한 재정의가 있습니다.
이제 Instantiator.cs라는 새 스크립트를 만들고 그 안에 다음 코드를 복사하세요.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } }
위 프로그램에서는 입력 클래스의 GetKeyDown 메서드를 사용하여 플레이어가 마지막 프레임 동안 특정 버튼을 눌렀는지 확인했습니다. GetKeyDown() 메서드는 해당 프레임에서 KeyCode 열거형(표준 키보드에서 가능한 모든 키를 나열하는 데 사용됨)에 지정된 키를 누르면 true를 반환합니다.
스크립트를 저장합니다. 이제 Hierarchy 탭에서 장면을 마우스 오른쪽 버튼으로 클릭하여 빈 GameObject를 만듭니다.
csma와 csma CD
Inspector 탭에서 새로 생성된 GameObject의 컴포넌트에 해당 스크립트 파일(Instantiator.cs)을 첨부합니다.
이제 우리가 만든 프리팹을 Diamond 변수로 드래그합니다.
지금 게임을 실행할 때 스페이스바를 누르면 프리팹을 만드는 데 사용한 것과 동일한 새 다이아몬드 개체가 생성됩니다. 개체 계층 구조에서 각 다이아몬드가 생성되는 것을 볼 수 있습니다. 게임에서 이들이 나타나는 것을 볼 수 없는 이유는 당분간은 모두 정확히 하나씩 겹쳐서 생성되고 있기 때문입니다. 하지만 Hierarchy 탭에서 확인할 수 있습니다. 스페이스바를 누를 때마다 탭에 다이아몬드(클론)로 표시됩니다.