//tips
stage作成
//hellstage追加調整
hellstageの追加によるスクリプトの修正。
ゴールにアタッチしているtitlemanageにhellstage称号の追加と、stage26クリア時に次のレベルに行く設定。
selectmanagerのボタンへのstage遷移設定。
clearlevel = 2;
PlayerPrefs.SetInt("LEVEL", clearlevel);
PlayerPrefs.Save();
同時にhardモード追加の際に編集した各種スクリプトの追加編集は下記。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class TitleManage : MonoBehaviour
{
[SerializeField] UnityEngine.UI.Text textbox;
[SerializeField] GameObject item;
void Start()
{
//PlayerPrefs.DeleteAll();
int clearStageNo = PlayerPrefs.GetInt("CLEAR", 0);
int clearStageNohd = PlayerPrefs.GetInt("CLEARhd", 0);//lavelhard
int clearStageNohl = PlayerPrefs.GetInt("CLEARhl", 0);//lavelhell
int playstage = PlayerPrefs.GetInt("playstage", 1);
int playstagehd = PlayerPrefs.GetInt("playstagehd", 1);//levelhard
int playstagehl = PlayerPrefs.GetInt("playstagehl", 1);//levelhell
int laststage = PlayerPrefs.GetInt("Last", 0);
int laststagehd = PlayerPrefs.GetInt("Lasthd", 0);//levelhard
int laststagehl = PlayerPrefs.GetInt("Lasthl", 0);//levelhell
int point_num = PlayerPrefs.GetInt("CPoint", 2);
int clearlevel = PlayerPrefs.GetInt("LEVEL", 0);
int nowlevel = PlayerPrefs.GetInt("nowLEVEL", 0);
//Debug.Log("c"+clearStageNo);
//Debug.Log("p" + playstage);
//Debug.Log("l" + laststage);
Debug.Log("LE" + clearlevel);
item.SetActive(false);
if (clearlevel == 0)//leveleasy
{
if (clearStageNo > laststage)
{
//if (clearStageNo == 0) DeleteALLの場合
item.SetActive(true);
if (clearStageNo == 1)
{
textbox.text = "お散歩の達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNo == 2)
{
textbox.text = "スキップの達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNo == 3)
{
textbox.text = "回転の達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNo == 4)
{
textbox.text = "襲歩の達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNo == 5)
{
textbox.text = "転身の達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNo == 6)
{
textbox.text = "変身の達人";
laststage = clearStageNo;
PlayerPrefs.SetInt("Last", laststage);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
clearlevel = 1;
PlayerPrefs.SetInt("LEVEL", clearlevel);
PlayerPrefs.Save();
}
}
else
{
textbox.enabled = false;
}
}
if (clearlevel == 1)//levelhard
{
if (clearStageNohd > laststagehd)
{
//if (clearStageNo == 0) DeleteALLの場合
item.SetActive(true);
if (clearStageNohd == 1)
{
textbox.text = "忍者の卵";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 2)
{
textbox.text = "忍者見習い";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 3)
{
textbox.text = "下忍";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 4)
{
textbox.text = "中忍";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 5)
{
textbox.text = "上忍";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 6)
{
textbox.text = "頭領";
laststagehd = clearStageNohd;
PlayerPrefs.SetInt("Lasthd", laststagehd);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
clearlevel = 2;
PlayerPrefs.SetInt("LEVEL", clearlevel);
PlayerPrefs.Save();
}
}
else
{
textbox.enabled = false;
}
}
if (clearlevel == 2)//levelhard
{
if (clearStageNohl > laststagehl)
{
//if (clearStageNo == 0) DeleteALLの場合
item.SetActive(true);
if (clearStageNohl == 1)
{
textbox.text = "求道者";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthl", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohl == 2)
{
textbox.text = "勇者";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthl", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohl == 3)
{
textbox.text = "怪物";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthd", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohd == 4)
{
textbox.text = "修羅";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthl", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohl == 5)
{
textbox.text = "亜神";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthl", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
}
if (clearStageNohl == 6)
{
textbox.text = "神の系列";
laststagehl = clearStageNohl;
PlayerPrefs.SetInt("Lasthl", laststagehl);
point_num += 1;
PlayerPrefs.SetInt("CPoint", point_num);
PlayerPrefs.Save();
clearlevel = 2;
PlayerPrefs.SetInt("LEVEL", clearlevel);
PlayerPrefs.Save();
}
}
else
{
textbox.enabled = false;
}
}
}
}
—————————————
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class StageSelectManager222 : MonoBehaviour
{
public GameObject[] stageButtons; //ステージ選択ボタン配列
// 非同期動作で使用するAsyncOperation
private AsyncOperation async;
// シーンロード中に表示するUI画面
[SerializeField]
private GameObject loadUI;
// 読み込み率を表示するスライダー
[SerializeField]
private Slider slider;
void Start()
{
//PlayerPrefs.DeleteAll();
int clearStageNohl = PlayerPrefs.GetInt("CLEARhl", 0); //どのステージまでクリアしているのかをロード(セーブされていなければ「0」)
//ステージボタンを有効化
for (int i = 0; i <= stageButtons.GetUpperBound(0); i++)
{
bool buttonEnable;
if (clearStageNohl < i)
{
buttonEnable = false; //前ステージをクリアしていなければ無効
}
else
{
buttonEnable = true; //前ステージをクリアしていれば有効
}
stageButtons[i].GetComponent<Button>().interactable = buttonEnable; //ボタンの有効/無効を設定
}
}
void Update()
{
}
//ステージ選択ボタンを押した
//public void PushStageSelectButton(int stageNo)
//SceneManager.LoadScene("GameScene" + stageNo); //ゲームシーンへ
public void NextScene(int stageNo)
{
int nowlevel = PlayerPrefs.GetInt("nowLEVEL", 0);
nowlevel = 2;
PlayerPrefs.SetInt("nowLEVEL", nowlevel);
PlayerPrefs.Save();
// ロード画面UIをアクティブにする
loadUI.SetActive(true);
// コルーチンを開始
StartCoroutine("PushStageSelectButton" + stageNo);
}
IEnumerator PushStageSelectButton1()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene31");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
IEnumerator PushStageSelectButton2()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene32");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
IEnumerator PushStageSelectButton3()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene33");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
IEnumerator PushStageSelectButton4()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene34");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
IEnumerator PushStageSelectButton5()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene35");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
IEnumerator PushStageSelectButton6()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("GameScene36");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
public void BackScene()
{
// ロード画面UIをアクティブにする
loadUI.SetActive(true);
// コルーチンを開始
StartCoroutine("BackSeneloading");
//SceneManager.LoadScene("TitleScene");
}
IEnumerator BackSeneloading()
{
// シーンの読み込みをする
async = SceneManager.LoadSceneAsync("TitleScene");
// 読み込みが終わるまで進捗状況をスライダーの値に反映させる
while (!async.isDone)
{
var progressVal = Mathf.Clamp01(async.progress / 0.9f);
slider.value = progressVal;
yield return null;
}
}
}
————————————
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class GoalController : MonoBehaviour
{
[SerializeField] GameObject Fade;
GameObject Player;
public int stageNo;
public int clearlevel;
void Start()
{
this.Player = GameObject.Find("Player");
clearlevel = PlayerPrefs.GetInt("LEVEL", 0);//easy0,hard1,hell2
}
void Update()
{
Vector3 p1 = transform.position;
Vector3 p2 = this.Player.transform.position;
if (p1 == p2)
{
Fadeover();
if (Player != null)
{
Invoke("Goal", 1.0f);
}
}
}
void Goal()
{
if (clearlevel == 0)
{
if (PlayerPrefs.GetInt("CLEAR,0") < stageNo)
{
PlayerPrefs.SetInt("CLEAR", stageNo);
}
}
if(clearlevel ==1)
{
if (PlayerPrefs.GetInt("CLEARhd,0") < stageNo)
{
PlayerPrefs.SetInt("CLEARhd", stageNo);
}
}
if (clearlevel == 2)
{
if (PlayerPrefs.GetInt("CLEARhl,0") < stageNo)
{
PlayerPrefs.SetInt("CLEARhl", stageNo);
}
}
SceneManager.LoadScene("Goal");
}
void Fadeover()
{
Fade.SetActive(true);
}
}
————————————————
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class UItext : MonoBehaviour
{
[SerializeField] UnityEngine.UI.Text textbox;
public int playstage;
void Start()
{
//PlayerPrefs.DeleteAll();
int clearStageNo = PlayerPrefs.GetInt("CLEAR", 0); //どのステージまでクリアしているのかをロード(セーブされていなければ「0」)
int clearStageNohd = PlayerPrefs.GetInt("CLEARhd", 0);//lavelhard
int clearStageNohl = PlayerPrefs.GetInt("CLEARhl", 0);//lavelhell
int clearlevel = PlayerPrefs.GetInt("LEVEL", 0);
int playstage = PlayerPrefs.GetInt("playstage", 1);//stageボタンクリックで認識ninposスクリプト
if (clearlevel == 0)
{
if (clearStageNo == 0)
{
textbox.text = "称号:" + "お使い" + "\n" + "STAGE" + playstage;
}
if (clearStageNo == 1)
{
textbox.text = "称号:" + "散歩" + "\n" + "STAGE: " + playstage;
}
if (clearStageNo == 2)
{
textbox.text = "称号:" + "スキップ" + "\n" + "STAGE: " + playstage;
}
if (clearStageNo == 3)
{
textbox.text = "称号:" + "ランニング" + "\n" + "STAGE: " + playstage;
}
if (clearStageNo == 4)
{
textbox.text = "称号:" + "ダッシュ" + "\n" + "STAGE: " + playstage;
}
if (clearStageNo == 5)
{
textbox.text = "称号:" + "転身" + "\n" + "STAGE: " + playstage;
}
if (clearStageNo == 6)
{
textbox.text = "称号:" + "変わり身" + "\n" + "STAGE: " + playstage;
}
}
if (clearlevel == 1)
{
if (clearStageNohd == 0)
{
textbox.text = "称号:" + "生徒" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 1)
{
textbox.text = "称号:" + "忍者の卵" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 2)
{
textbox.text = "称号:" + "忍者見習い" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 3)
{
textbox.text = "称号:" + "下忍" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 4)
{
textbox.text = "称号:" + "中忍" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 5)
{
textbox.text = "称号:" + "上忍" + "\n" + "STAGE: 2-" + playstage;
}
if (clearStageNohd == 6)
{
textbox.text = "称号:" + "頭領" + "\n" + "STAGE: 2-" + playstage;
}
}
if (clearlevel == 2)
{
if (clearStageNohl == 0)
{
textbox.text = "称号:" + "変質者" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 1)
{
textbox.text = "称号:" + "求道者" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 2)
{
textbox.text = "称号:" + "勇者" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 3)
{
textbox.text = "称号:" + "怪物" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 4)
{
textbox.text = "称号:" + "修羅" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 5)
{
textbox.text = "称号:" + "亜神" + "\n" + "STAGE: 3-" + playstage;
}
if (clearStageNohl == 6)
{
textbox.text = "称号:" + "神の系列" + "\n" + "STAGE: 3-" + playstage;
}
}
}
}