탈출 게임 제작 방법 4 설치 목록 박스 스크립트 구현
항목 상자 만들기
사용자 인터페이스 만들기
UI-Panel
검사기의 Anchor Presets에서 위치를 top-center로 설정
Pivot을 1, Pos Y를 0, Height를 200으로 설정
색상을 검은색으로 설정
이름을 ItemBoxPlnel로 설정
ItemBoxPnel에서 UI-Image를 생성하고 ItemBox로 이름 지정
크기(W120, H100)
AddCompornent에 Button 구성 요소 설치
프로젝트 상자를 프로젝트의prefab 폴더에 끌어다 놓고 미리 만들기
네 개로 복사
프로젝트 BoxPlnel을 선택한 상태에서 AddCompornent에서 HorizontalLayoutGrop으로 설정
ChildForceExpand 선택 취소 및 ChildAlignment에서 MiddleCenter 선택
공백을 드래그하는 동안 간격 조정(55 정도)
항목 가져오기 후 항목 상자 넣기
프로젝트 BoxManager 스크립트를 만들고 프로젝트 BoxPlnel에 붙여넣기
◇ 사용 항목 열거형 만들기(ITEM)
NONE, (항목 없음)
LIGHT_BULB(전구)
◇ 프로젝트 상자는 4개 항목을 얻을 수 있기 때문에 배열을 통해 관리한다
ITEM[] itemList = new ITEM[4];
검색된 항목 배열
네 개의 상자에 itemList라는 그룹을 표시합니다.
※ 열거형으로 제작된'ITEM'형의 배열
(열거 유형과 그룹의 조합)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public enum ITEM
{
NONE, //アイテムが何もない
LIGHT_BULB //電球
}
public class ItemBoxManager : MonoBehaviour
{
ITEM[] itemList = new ITEM[4]; // 取得したアイテムの配列
// アイテムを取得
public void SetItem(ITEM item)
{
itemList[0] = item; //0番目の箱にitemを取得する
}
// アイテムの使用
public void UseItem(int index)
{
itemList[index] = ITEM.NONE; // index番目のアイテムを使用したので空にする
}
}
내부에서 SetItem(LIGHT_BULB)을 통해 전구를 얻고 UseItem(0)의 0 번째 항목을 사용합니다.의 함수.
이 처리에 이미지 표시 추가
◇ 이미지 가져오기
using UnityEngine.UI;
덧붙이다
※ 스크립트에서 UI 객체(Image 또는 Text 유형)를 사용할 경우
지금까지는 Image와 Text를 사용해도 필요하지 않았습니까?
· 지금까지 Game Object를 조작했기 때문에 Image 또는 Text 형식을 사용할 때.사용자 인터페이스 필요
itemBox 이미지와 전구 이미지 가져오기
[SerializeField] Sprite lightBulbSprite; // 電球画像
[SerializeField] Image[] itemBoxImages; //itemBoxIの画像(配列)
Sprite 이미지 형식(UI 아님)
Sprite 이미지 객체
(이 자료는 모두 Sprite)
Inspecter, ItemBoxPnel 객체의 ItemBoxManager 스크립트에서
lightBulbSprite
itemBoxImages
나타나다
불빛 BulbSprite에서 불빛 Bulb 이미지 설정하기
itemBoxImages에서 클릭 = 크기를 4로 설정
네 개의 요소에 대한 항목 상자의 각 이미지 설정
◇item에서 전구의 데이터를 얻은 후 전구의 이미지를 표시합니다
item은 NONE입니다. 그렇지 않으면 아무것도 표시되지 않습니다.
◇ 인덱스 항목 사용 후 인덱스 항목에 아무것도 표시되지 않음
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public enum ITEM
{
NONE,
LIGHT_BULB
}
public class ItemBoxManager : MonoBehaviour
{
[SerializeField] Sprite lightBulbSprite; // 電球画像
[SerializeField] Image[] itemBoxImages;
ITEM[] itemList = new ITEM[4]; // 取得したアイテムの配列
// アイテムを取得
public void SetItem(ITEM item)
{
itemList[0] = item; //0番目の箱にitemを取得する
switch (item)
{
case ITEM.LIGHT_BULB: //電球のデータが取得されたら、電球の画像を表示する
itemBoxImages[0].sprite = lightBulbSprite;
break;
default: //itemがNONE、それ以外の場合は何も表示しない
case ITEM.NONE:
itemBoxImages[0].sprite = null;
break;
}
}
// アイテムの使用
public void UseItem(int index)
{
itemList[index] = ITEM.NONE; // index番目のアイテムを使用したので空にする
itemBoxImages[index].sprite = null; //index番目に何も表示しない
}
◇DrawerPnel에서 서랍을 클릭하여 전구를 구할 경우 위 절차를 수행합니다.DrawerManager 스크립트에서
[SerializeField] ItemBoxManager itemBoxManager;
를 클릭하십시오.OnClickTrigger() 함수에 다음 내용 추가
itemBoxManager.SetItem(ITEM.LIGHT_BULB);
중간에 되돌아오는 단추를 사용할 수 없는 것은
ItemBoxPnel이 복귀 버튼을 방해합니다.
수정 방법, 다음 중 하나
1. 모든 패널 아래에 BackTriggerButton을 놓습니다(Hierarchy 창에서 최신 객체가 위에 겹치기 때문).
2. 항목 BoxPanel의 Raycast Target 선택을 취소하고 항목 BoxPanel을 마우스 클릭 대상에서 삭제합니다.
(이번엔 2. 방법으로 수정)
교재
유니티 게임 스튜디오
[유니티] 초보자 탈출!?탈출 게임 만드는 방법 3
https://youtu.be/S8G9LE0LNq8
[유니티] 초보자 탈출!?탈출 게임의 제작법, 그 4ItemBox 스크립트의 실현.
https://youtu.be/LJ8VFcDfJno
Reference
이 문제에 관하여(탈출 게임 제작 방법 4 설치 목록 박스 스크립트 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/taachan008/items/e1dffa0e287aeb73191d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)