お世話になっております。初心者です。
unity5.4
プラグイン 宴
前回の質問から https://teratail.com/questions/55563
一歩前進したのですが、構文エラーが出てしまいどこがおかしいのか指摘頂きたいです。
前回のAUTOを押した状態でメニューを押すと止まる。メニューを閉じると再開するというものは出来たのですが、AUTO押してない状態でもメニューを閉じたらAUTOが開始されてしまいました。なので、AUTOが起動した場合だけ機能するようIFを追加しました。
using System; using System.Collections; using UnityEngine; using UnityEngine.UI; using Utage; /// <summary> /// メインゲーム画面のサンプル /// 入力処理に起点になるため、スクリプトの実行順を通常よりも少しはやくすること /// http://docs-jp.unity3d.com/Documentation/Components/class-ScriptExecution.html /// </summary> [AddComponentMenu("Utage/TemplateUI/MainGame")] public class UtageUguiMainGame : UguiView { /// <summary>ADVエンジン</summary> public AdvEngine Engine { get { return this.engine ?? (this.engine = FindObjectOfType<AdvEngine>()); } } [SerializeField] AdvEngine engine; /// <summary>ADVエンジン</summary> public UguiLetterBoxCamera LetterBoxCamera { get { return this.letterBoxCamera ?? (this.letterBoxCamera = FindObjectOfType<UguiLetterBoxCamera>()); } } [SerializeField] UguiLetterBoxCamera letterBoxCamera; /// <summary>タイトル画面</summary> public UtageUguiTitle title; /// <summary>コンフィグ画面</summary> public UtageUguiConfig config; public GameObject menu; /// <summary>セーブロード画面</summary> public UtageUguiSaveLoad saveLoad; /// <summary>ギャラリー画面</summary> public UtageUguiGallery gallery; /// <summary>ボタン</summary> public GameObject buttons; /// <summary>スキップボタン</summary> public Toggle checkSkip; /// <summary>自動で読み進むボタン</summary> public Toggle checkAuto; //起動タイプ enum BootType { Default, Start, Load, SceneGallery, StartLabel, }; BootType bootType; //ロードするセーブデータ AdvSaveData loadData; bool isInit = false; /// <summary>起動するシナリオラベル</summary> string scenaioLabel; void Awake() { Engine.Page.OnEndText.AddListener((page) => CaptureScreenOnSavePoint(page)); } /// <summary> /// 画面を閉じる /// </summary> public override void Close() { base.Close(); Engine.UiManager.Close(); Engine.Config.IsSkip = false; } //起動データをクリア void ClearBootData() { bootType = BootType.Default; isInit = false; loadData = null; } /// <summary> /// ゲームをはじめから開始 /// </summary> public void OpenStartGame() { ClearBootData(); bootType = BootType.Start; Open(); } /// <summary> /// 指定ラベルからゲーム開始 /// </summary> public void OpenStartLabel(string label) { ClearBootData(); bootType = BootType.StartLabel; this.scenaioLabel = label; Open(); } /// <summary> /// セーブデータをロードしてゲーム再開 /// </summary> /// <param name="loadData">ロードするセーブデータ</param> public void OpenLoadGame(AdvSaveData loadData) { ClearBootData(); bootType = BootType.Load; this.loadData = loadData; Open(); } /// <summary> /// シーン回想としてシーンを開始 /// </summary> /// <param name="scenaioLabel">シーンラベル</param> public void OpenSceneGallery(string scenaioLabel) { ClearBootData(); bootType = BootType.SceneGallery; this.scenaioLabel = scenaioLabel; Open(); } /// <summary> /// オープンしたときに呼ばれる /// </summary> void OnOpen() { //スクショをクリア if (Engine.SaveManager.Type != AdvSaveManager.SaveType.SavePoint) { Engine.SaveManager.ClearCaptureTexture(); } StartCoroutine(CoWaitOpen()); } //起動待ちしてから開く IEnumerator CoWaitOpen() { while (Engine.IsWaitBootLoading) yield return 0; switch (bootType) { case BootType.Default: Engine.UiManager.Open(); break; case BootType.Start: Engine.StartGame(); break; case BootType.Load: Engine.OpenLoadGame(loadData); break; case BootType.SceneGallery: Engine.StartSceneGallery(scenaioLabel); break; case BootType.StartLabel: Engine.StartGame(scenaioLabel); break; } ClearBootData(); loadData = null; Engine.Config.IsSkip = false; isInit = true; } //更新中 void Update() { if (!isInit) return; //ローディングアイコンを表示 if (SystemUi.GetInstance()) { if (Engine.IsLoading) { SystemUi.GetInstance().StartIndicator(this); } else { SystemUi.GetInstance().StopIndicator(this); } } if (Engine.IsEndScenario) { Close(); if (Engine.IsSceneGallery) { //回想シーン終了したのでギャラリーに gallery.Open(); } else { //シナリオ終了したのでタイトルへ title.Open(this); } } } public void LateUpdate() { //メニューボタンの表示・表示を切り替え buttons.SetActive(Engine.UiManager.IsShowingMenuButton && Engine.UiManager.Status == AdvUiManager.UiStatus.Default); //スキップフラグを反映 if (checkSkip) { if (checkSkip.isOn != Engine.Config.IsSkip) { checkSkip.isOn = Engine.Config.IsSkip; } } //オートフラグを反映 if (checkAuto) { if (checkAuto.isOn != Engine.Config.IsAutoBrPage) { checkAuto.isOn = Engine.Config.IsAutoBrPage; } } } void CaptureScreenOnSavePoint( AdvPage page ) { if (Engine.SaveManager.Type == AdvSaveManager.SaveType.SavePoint) { if (page.IsSavePoint) { Debug.Log("Capture"); StartCoroutine(CoCaptureScreen()); } } } IEnumerator CoCaptureScreen() { yield return new WaitForEndOfFrame(); //セーブ用のスクショを撮る Engine.SaveManager.CaptureTexture = LetterBoxCamera.CaptureScreen(); } //スキップボタンが押された public void OnTapSkip( bool isOn ) { Engine.Config.IsSkip = isOn; } //自動読み進みボタンが押された public void OnTapAuto( bool isOn ) { Engine.Config.IsAutoBrPage = isOn; } public void OnTapAuto( bool isAuto ) { isAuto = true; } //コンフィグボタンが押された public void OnTapConfig() { Close(); config.Open(this); } //セーブボタンが押された public void OnTapSave() { if (Engine.IsSceneGallery) return; StartCoroutine(CoSave()); } IEnumerator CoSave() { if (Engine.SaveManager.Type != AdvSaveManager.SaveType.SavePoint) { yield return new WaitForEndOfFrame(); //セーブ用のスクショを撮る Engine.SaveManager.CaptureTexture = LetterBoxCamera.CaptureScreen(); } //セーブ画面開く Close(); saveLoad.OpenSave(this); } //ロードボタンが押された public void OnTapLoad() { if (Engine.IsSceneGallery) return; Close(); saveLoad.OpenLoad(this); } //クイックセーブボタンが押された public void OnTapQSave() { if (Engine.IsSceneGallery) return; Engine.Config.IsSkip = false; StartCoroutine(CoQSave()); } IEnumerator CoQSave() { if (Engine.SaveManager.Type != AdvSaveManager.SaveType.SavePoint) { yield return new WaitForEndOfFrame(); //セーブ用のスクショを撮る Engine.SaveManager.CaptureTexture = LetterBoxCamera.CaptureScreen(); } //クイックセーブ Engine.QuickSave(); //スクショをクリア if (Engine.SaveManager.Type != AdvSaveManager.SaveType.SavePoint) { Engine.SaveManager.ClearCaptureTexture(); } } //クイックロードボタンが押された public void OnTapQLoad() { if (Engine.IsSceneGallery) return; Engine.Config.IsSkip = false; Engine.QuickLoad(); } } //menuが押された public void OnTapmenu(){ if(isAuto = true){ /// オープンしたときに呼ばれる void OnEnable(){ Engine.Config.IsAutoBrPage = false; } /// 画面を閉じる void OnDisable(){ Engine.Config.IsAutoBrPage = true; } } } } コード
//自動読み進みボタンが押された に isAuto = true; というフラグを作り、最後の//menuが押された にIF文記述しました。
現在のエラー
//menuが押された public にparse errorが出ています。
void OnDisable(){ のvoidも緑色になっていません。
間違っているプログラムを教えていただきませんでしょうか
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/11/22 04:40