Unity에서 구현 단계 해제

12693 단어 Unity

개요


여러 무대를 자작한 게임에 등장시키고 싶을 때, 무대의 해방이 어떻게 실현될 수 있는지, 그 예를 소개하고 싶다!이번에는'전 무대를 마치고 다음 무대를 해방한다'는 조건으로 해방되었다.

전제 조건


무대 선택 화면이 존재하고 버튼을 누르면 각 무대의 상태에 도달할 수 있다는 것을 전제로 한다.

무대를 해방시키자.


1. 해방 전 버튼 만들기



이번 목표는 이미지처럼 앞뒤 버튼의 색깔 변화를 해방시키고 다음 무대로 갈 수 있도록 하기 위해서다. 우선'해방전'과'해방후'두 개의 버튼을 준비하는 것부터 시작한다.Command + D를 사용하여 스테이지 버튼을 복사합니다.
이것은 방출 전의 단추다.
이름도 알기 쉽게 바꿔야 한다.(이번은 s2p)

다음으로 방출 전 버튼의 색상을 변경합니다 (이번에는 회색)

*주의*
원래 버튼을 복사했기 때문에 클릭하면 게임 장면에 연결될 수 있으니 삭제하세요.
다음과 같이 OnClick 상자의 음수 표시를 누르면 삭제됩니다.

이렇게 해방 전의 버튼이 완성되었다.
관련이 없기 때문에 클릭해도 아무 일도 일어나지 않습니다.

경품: 해방 전 버튼을 클릭하면 팝업


물론 이래도 상관없지만, 눌렀을 때 "해방되지 않았어!"팝업 메뉴가 더 쉽게 이해될 수 있습니다.
먼저 HierarchyCreate > UI > Panel에 패널을 생성하여 크기, 위치 및 색상을 조정합니다.(이번에는 기본 상태에서 색상을 짙게 하고 화면 한가운데에 배치합니다.)

그런 다음 패널에 텍스트 상자를 생성합니다.
"아직 해방이 안 됐어!"에서 설명한 대로 해당 매개변수의 값을 수정합니다.
마지막으로 닫기 팝업 단추를 만듭니다.
버튼에 표시된 텍스트에 뒤로 를 입력합니다.
완성된 건 여기↓

점점 튀어나오는 것 같애.
마지막으로 팝업 취소의'후퇴'단추를 시작하기 위해 다음 스크립트를 작성하여 연결하십시오.
PopupScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//UnityのUI(buttonなどの機能)を使用するおまじない



public class PopupScript : MonoBehaviour {


    public GameObject Popup;//Popupというゲームオブジェクトを宣言する



    // Use this for initialization
     void Start () {

    }

    // Update is called once per frame

     void Update () {    

    }



     //Appear関数が呼び出されるとポップアップが表示される
     public void Appear(){
        Popup.SetActive (true);
    }



   //Delete関数が呼び出されるとポップアップが非表示になる
     public void Delete(){
        Popup.SetActive (false);
    }



}
*해설*
SetActive 함수를 사용하면 스크립트에서 GameObject의 표시와 숨김 (활성 상태인지) 을 전환할 수 있습니다.수동이면 객체를 선택할 때 왼쪽 위 모서리의 확인란을 전환할 수 있습니다.

마지막으로 Panel 확인란을 취소합니다.(평소에는 안 보여도 됨)
이제 방출 전 버튼을 누르면 팝업 버튼이 나타나서 Back 버튼으로 삭제할 수 있습니다!

2. 스크립트 쓰기


드디어 무대가 해방된다.우선 제작 관리 해방 진행 상황의 변수부터 시작한다.
이 변수의 값을 변경하면 현재 방출된 단계를 알 수 있습니다.
전제 조건에서 변경되고 추가된 스크립트는 주로 다음과 같은 두 가지가 있습니다.
(1) 새 관리 단계에서 실행된 스크립트
(2) 목표에 도달했을 때의 스크립트에 변수를 관리하는 부분(단계별) 추가

자유로운 절차와 메커니즘


다음에 쓸 스크립트가 어떻게 작용하는지 절차를 살펴보자.

(1) 스크립트 만들기, 연결 단계 해제


이번에는 StageScript입니다.나는 cs라는 이름을 지었다.
stage_num의 값에 따라 단계 해방 처리!
StageScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class StageScript : MonoBehaviour {

    public int stage_num; // スコア変数
    public GameObject ni;
    public GameObject san;
    public GameObject yon;
    public GameObject go;

    // Use this for initialization
    void Start () {
        //現在のstage_numを呼び出す
        stage_num = PlayerPrefs.GetInt ("SCORE", 0);
    }

    // Update is called once per frame
    void Update () {
        //stage_numが2以上のとき、ステージ2を解放する。以下同様
        if (stage_num >= 2) {
            ni.SetActive (true);
        }

        if (stage_num >= 3) {
            san.SetActive (true);
        }

        if (stage_num >= 4) {
            yon.SetActive (true);
        }

        if (stage_num >= 5) {
            go.SetActive (true);
        }

    }
}
위의 스크립트를 만든 후 스테이지 선택 화면에 빈 대상을 만들고 연결하세요!
빈 오브젝트Hierarchy > Create > Create Empty로 제작됩니다.
우선 HelloScript입니다.cs를 빈 대상에 끌어다 놓고 아래와 같이 각 항목에 대응하는 대상 (이번은 무대 단추) 을 누르십시오.

(2) 종점에 도달한 stage_num 변경


그리고 종점에 도착했을 때 stage_num 값을 변경하려면 다음 스크립트를 만들고 대상 대상에 드래그하십시오.
ReleaseScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ReleaseScript : MonoBehaviour {


    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {

    }

    void OnTriggerEnter(Collider other){
        if (other.gameObject.name == "Player") {
        //PlayerPrefsのSCOREに3という値を入れる
            PlayerPrefs.SetInt ("SCORE", 3);
            //PlayerPrefsをセーブする         
            PlayerPrefs.Save ();

        }
    }
}

목표 스크립트는 게임을 제작할 때 이미 연결되어 있을 것이기 때문에 특별히 추가하지 않을 것이다.

3. 완성!!


이게 완성이야.
이번에 소개한 스크립트를 사용하면 해방된 상황에 따라 캐릭터 도감도 해방 등 응용이 가능하니 꼭 힘쓰세요!

또한 기사에서 사용된 캡처는 자체 제작한'마이크로'라는 무료 게임입니다. 가능하다면 할 수 있다면 기쁠 것입니다!
게임 링크↓
https://www.freem.ne.jp/win/game/20282

좋은 웹페이지 즐겨찾기