탈출 게임 제작 방법 4 설치 목록 박스 스크립트 구현

9859 단어 UnityC#

항목 상자 만들기


사용자 인터페이스 만들기


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

좋은 웹페이지 즐겨찾기