Unity에서 구현 단계 해제
12693 단어 Unity
개요
여러 무대를 자작한 게임에 등장시키고 싶을 때, 무대의 해방이 어떻게 실현될 수 있는지, 그 예를 소개하고 싶다!이번에는'전 무대를 마치고 다음 무대를 해방한다'는 조건으로 해방되었다.
전제 조건
무대 선택 화면이 존재하고 버튼을 누르면 각 무대의 상태에 도달할 수 있다는 것을 전제로 한다.
무대를 해방시키자.
1. 해방 전 버튼 만들기
이번 목표는 이미지처럼 앞뒤 버튼의 색깔 변화를 해방시키고 다음 무대로 갈 수 있도록 하기 위해서다. 우선'해방전'과'해방후'두 개의 버튼을 준비하는 것부터 시작한다.Command + D
를 사용하여 스테이지 버튼을 복사합니다.
이것은 방출 전의 단추다.
이름도 알기 쉽게 바꿔야 한다.(이번은 s2p)
다음으로 방출 전 버튼의 색상을 변경합니다 (이번에는 회색)
*주의*
원래 버튼을 복사했기 때문에 클릭하면 게임 장면에 연결될 수 있으니 삭제하세요.
다음과 같이 OnClick 상자의 음수 표시를 누르면 삭제됩니다.
이렇게 해방 전의 버튼이 완성되었다.
관련이 없기 때문에 클릭해도 아무 일도 일어나지 않습니다.
경품: 해방 전 버튼을 클릭하면 팝업
물론 이래도 상관없지만, 눌렀을 때 "해방되지 않았어!"팝업 메뉴가 더 쉽게 이해될 수 있습니다.
먼저 HierarchyCreate > UI > Panel
에 패널을 생성하여 크기, 위치 및 색상을 조정합니다.(이번에는 기본 상태에서 색상을 짙게 하고 화면 한가운데에 배치합니다.)
그런 다음 패널에 텍스트 상자를 생성합니다.
"아직 해방이 안 됐어!"에서 설명한 대로 해당 매개변수의 값을 수정합니다.
마지막으로 닫기 팝업 단추를 만듭니다.
버튼에 표시된 텍스트에 뒤로 를 입력합니다.
완성된 건 여기↓
점점 튀어나오는 것 같애.
마지막으로 팝업 취소의'후퇴'단추를 시작하기 위해 다음 스크립트를 작성하여 연결하십시오.
PopupScript.csusing 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.csusing 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.csusing 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
Reference
이 문제에 관하여(Unity에서 구현 단계 해제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takayuuu/items/7da32e2290be4fbf1b4e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
무대 선택 화면이 존재하고 버튼을 누르면 각 무대의 상태에 도달할 수 있다는 것을 전제로 한다.
무대를 해방시키자.
1. 해방 전 버튼 만들기
이번 목표는 이미지처럼 앞뒤 버튼의 색깔 변화를 해방시키고 다음 무대로 갈 수 있도록 하기 위해서다. 우선'해방전'과'해방후'두 개의 버튼을 준비하는 것부터 시작한다.Command + D
를 사용하여 스테이지 버튼을 복사합니다.
이것은 방출 전의 단추다.
이름도 알기 쉽게 바꿔야 한다.(이번은 s2p)
다음으로 방출 전 버튼의 색상을 변경합니다 (이번에는 회색)
*주의*
원래 버튼을 복사했기 때문에 클릭하면 게임 장면에 연결될 수 있으니 삭제하세요.
다음과 같이 OnClick 상자의 음수 표시를 누르면 삭제됩니다.
이렇게 해방 전의 버튼이 완성되었다.
관련이 없기 때문에 클릭해도 아무 일도 일어나지 않습니다.
경품: 해방 전 버튼을 클릭하면 팝업
물론 이래도 상관없지만, 눌렀을 때 "해방되지 않았어!"팝업 메뉴가 더 쉽게 이해될 수 있습니다.
먼저 HierarchyCreate > UI > Panel
에 패널을 생성하여 크기, 위치 및 색상을 조정합니다.(이번에는 기본 상태에서 색상을 짙게 하고 화면 한가운데에 배치합니다.)
그런 다음 패널에 텍스트 상자를 생성합니다.
"아직 해방이 안 됐어!"에서 설명한 대로 해당 매개변수의 값을 수정합니다.
마지막으로 닫기 팝업 단추를 만듭니다.
버튼에 표시된 텍스트에 뒤로 를 입력합니다.
완성된 건 여기↓
점점 튀어나오는 것 같애.
마지막으로 팝업 취소의'후퇴'단추를 시작하기 위해 다음 스크립트를 작성하여 연결하십시오.
PopupScript.csusing 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.csusing 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.csusing 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
Reference
이 문제에 관하여(Unity에서 구현 단계 해제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takayuuu/items/7da32e2290be4fbf1b4e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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);
}
}
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);
}
}
}
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 ();
}
}
}
Reference
이 문제에 관하여(Unity에서 구현 단계 해제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takayuuu/items/7da32e2290be4fbf1b4e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)