前提・実現したいこと
http://hiyotama.hatenablog.com/entry/2015/04/24/105612
を参考にブロック崩しを作成しています。
クリア文字の表示切替ができません
発生している問題・エラーメッセージ
エラーは出てないです
該当のソースコード
ballのスクリプト
1using UnityEngine; 2using System.Collections; 3using UnityEngine.SceneManagement; 4 5public class ball : MonoBehaviour 6{ 7 public GameObject gameClear; 8 int speed = 5; 9 public int blockCt = 20; 10 Rigidbody rb; 11 Vector3 v; 12 // Use this for initialization 13 void Start() 14 { 15 //以下を追加 16 this.GetComponent<Rigidbody>().AddForce( 17 (transform.forward + transform.right) * speed, 18 ForceMode.VelocityChange); 19 rb = GetComponent<Rigidbody>(); 20 rb.AddForce((transform.up + transform.right) * speed, ForceMode.VelocityChange); 21 } 22 23 void Update() 24 { 25 //ブロックを全て壊した時 26 if (blockCt == 0) 27 { 28 //ボールの動きを止める 29 GetComponent<Rigidbody>().velocity = Vector3.zero; 30 //GameClearScriptのWinメソッドを実行しGameClearの文字を表示 31 gameClear.SendMessage("Win"); 32 //クリックしてタイトル画面へ 33 if (Input.GetMouseButtonDown(0)) 34 { 35 SceneManager.LoadScene("start"); 36 } 37 } 38 } 39 void OnCollisionEnter(Collision col) 40 { 41 //ブロックにぶつかるとブロックカウント-1 42 if (col.gameObject.tag == "block") 43 { 44 blockCt -= 1; 45 } 46 } 47}
gameclearのスクリプト
1using UnityEngine; 2 3using UnityEngine.UI; 4 5using System.Collections; 6public class GameClear : MonoBehaviour 7{ 8 9 void Start() 10 11 { 12 13 this.gameObject.GetComponent<Text>().enabled = false; 14 15 } 16 17 public void Win() 18 { 19 20 gameObject.GetComponent<Text>().enabled = true; 21 22 } 23 24}
試したこと
blockはプレハブ化しており、全てblockのタグがついています
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
Update()内でDebug.Log(blockCt)を実行してログを見たらちゃんと0になりますか?
18
UnityEngine.Debug:Log(Object)
ball:Update() (at Assets/ball.cs:25)
と表示されました
if (blockCt == 0)
内にDebug.Log("aaa")やったら出てきますか?
コンソールに何も表示されなくなりました
void OnGUI(){
GUILayout.Label("blockCt:"+blockCt);
}
を追加してblockCtが正しく変化するか確認してみてください
GameClearの方のStartにDebug.Log("gameclear start")を追加してログを吐くか確認してみてください
追加したのですがコンソールには何も表示されませんでした
blockCtが正しく変化するか確認というのはどこでできるのでしょうか
無知で申し訳ないです
blockCtはプレイ中に左上に表示さてるとおもいます
blockCt正しく変化していました、ありがとうございます
Debug.Log("gameclear start")を追加したら
All compiler errors have to be fixed before you can enter playmode!
UnityEditor.SceneView:ShowCompileErrorNotification()
と表示されたのですがゲームの再生はできました
回答1件
あなたの回答
tips
プレビュー