로컬 자산 패키지
로컬 자산 패키지는 *.yymps 파일 형식으로 저장된 리소스 그룹으로, 기존 프로젝트에 쉽게 설치할 수 있습니다. 즉, 스크립트 라이브러리, 스플래시 화면 인트로, 메뉴 시스템 등 자주 사용하는 리소스의 라이브러리를 생성할 수 있으며, GameMaker Marketplace를 사용할 필요가 없습니다.
자산 패키지 생성하기
자산 패키지를 생성하려면 먼저 프로젝트에서 저장할 리소스를 만들어야 합니다. 그런 다음 도구 메뉴에서 "로컬 패키지 생성" 옵션을 선택합니다. 그러면 다음과 같은 창이 열립니다:
항목 | 설명 |
---|---|
발행자 이름 | 선택 사항 |
표시 이름 | 필수 |
패키지 ID | 필수, 패키지 파일 이름 생성에 사용 |
버전 번호 | 선택 사항 |
서명 여부 | 기본적으로 꺼져 있음, 서명된 자산은 수정된 경우 가져올 수 없음 |
패키지 세부 정보를 입력한 후, 오른쪽의 "프로젝트" 섹션에서 포함할 자산을 선택할 수 있습니다. 선택한 리소스는 "자산 패키지" 뷰로 이동할 수 있으며, 제거할 수도 있습니다. 모든 선택이 완료되면 OK 버튼을 클릭하여 패키지를 저장할 위치를 선택합니다.
자산 패키지 가져오기
로컬 자산 패키지를 가져오는 방법은 두 가지가 있습니다:
- 탐색기 창에서 *.yymps 파일을 GameMaker IDE로 드래그 앤 드롭하기
- 도구 메뉴에서 "로컬 패키지 가져오기" 옵션 선택하기
도구 메뉴를 사용할 경우 탐색기 창이 열리며 패키지 위치를 찾아 선택할 수 있습니다. 이후 GameMaker에서 다음과 같은 창이 열립니다:
항목 | 설명 |
---|---|
패키지 내용 | 왼쪽에 표시됨 |
가져올 부분 | 오른쪽에 표시됨 |
패키지에서 하나 이상의 리소스를 선택한 후, 추가 버튼을 사용하여 가져올 수 있습니다. 모든 리소스를 가져오려면 "모두 추가" 버튼을 사용할 수 있습니다. 준비가 완료되면 가져오기 버튼을 클릭하여 선택한 리소스를 프로젝트에 추가합니다. 모든 리소스를 새 프로젝트로 가져오는 옵션도 있으며, 이 경우 새 프로젝트를 생성하고 저장할 위치를 지정해야 합니다.
참고: GameMaker 2.3 이전 버전에서 생성된 자산 패키지는 변환이 필요합니다. 프로젝트 파일 형식이 2.3 업데이트와 함께 변경되었기 때문입니다. 자산이 다른 프로젝트에 자주 가져와야 하는 경우, 전체 프로젝트를 가져와서 변환한 후 새 위치에 새로운 패키지로 내보내는 것이 좋습니다.
활용 예제
자산 패키지 생성 예제
// 자산 패키지 생성 코드 예제
var package_name = "MyAssetPackage";
var package_id = "com.example.myassetpackage";
var display_name = "내 자산 패키지";
var version_number = "1.0.0";
// 패키지 생성 함수 호출
create_local_package(package_name, package_id, display_name, version_number);
자산 패키지 가져오기 예제
// 자산 패키지 가져오기 코드 예제
var package_path = "C:/path/to/package.yymps";
// 패키지 가져오기 함수 호출
import_local_package(package_path);
자산 패키지 서명 예제
// 자산 패키지 서명 코드 예제
var package_id = "com.example.myassetpackage";
var signing_certificate = "path/to/certificate.pem";
// 패키지 서명 함수 호출
sign_asset_package(package_id, signing_certificate);
자산 패키지 업데이트 예제
// 자산 패키지 업데이트 코드 예제
var package_id = "com.example.myassetpackage";
var new_version_number = "1.1.0";
// 패키지 업데이트 함수 호출
update_asset_package(package_id, new_version_number);
이와 같은 방법으로 로컬 자산 패키지를 생성하고 가져오는 과정을 통해 프로젝트의 효율성을 높일 수 있습니다.