###前提・実現したいこと
ソシムから出版されたUnity5 3D/2Dゲーム開発 実践入門を参照中です。
この書籍の164ページのスクリプトについて質問させてください。
持ち球30個からマイナスしたりプラスしたりするというスクリプトです。
そこで画面の左上に持ち球の個数が表示されて、その個数が30未満だと
個数の横に10秒からのカウントダウンが表示されて、
0秒になったら持ち球が1個プラスされるようです。
ですが実際にプレビューして持ち球を何個打ち出してもカウントダウンは表示されません。
エラーも警告も吐いていません。
誤字脱字はくまなく探してみましたがおそらく無いと思います。
スクリプト実装も確認しました。
ゲームオブジェクトは非アクティブになっていません。
コルーチンをこのスクリプトで初めて使ったので、その部分がなにか
悪さをしているのかな・・・と思ったのですが
どうしても解決できませんでした。
どうすればカウントダウンが表示できるでしょうか。
初めての質問で至らない部分があるかもしれませんが、よろしくお願いいたします。
###該当のソースコード
using UnityEngine; using System.Collections; public class CandyHolder : MonoBehaviour { const int DefaultCandyAmount = 30; const int RecoverySeconds = 10; //現在のキャンディのストック数 int candy = DefaultCandyAmount; //ストック回復までの残り秒数 int counter; public void ConsumeCandy() { if(candy > 0) candy--; } public int GetCandyAmount() { return candy; } public void AddCandy(int amount) { candy += amount; } void OnGUI() { GUI.color = Color.black; //キャンディのストック数を表示 string label = "Candy : " + candy; //回復カウントしているときだけ秒数を表示 if(counter > 0) label = label + " (" + counter + "s)"; GUI.Label(new Rect(0, 0, 100, 30), label); } void Updata() { //キャンディのストックがデフォルトより少なく、 //回復カウントをしていないときにカウントをスタートさせる if(candy < DefaultCandyAmount && counter <= 0) { StartCoroutine(RecoverCandy()); } } IEnumerator RecoverCandy() { counter = RecoverySeconds; //1秒ずつカウントを進める while(counter > 0) { yield return new WaitForSeconds(1.0f); counter--; } candy++; } }
###補足情報(言語/FW/ツール等のバージョンなど)
言語:C# 使用ツール:Unity5.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/11/07 03:13