2017-09-02 8 views
0

Unityで3つの文字を記憶しておき、3つの画像ボタンをクリックしなければならないUnityのメモリマッチングゲームに取り組んでいます。正しい画像ボタンがクリックされると、それはレベル完了シーンに変わり、そうでなければシーンオーバーゲームに進む。 3つの正しいボタンがクリックされた場合、シーンを変更する方法は?特定のボタンがクリックされたときにシーンを1つに変える方法

私はUnityにとって新しく、リンク/コードスニペットはすばらしくなるでしょう!

答えて

2

3文字を記憶してから3ボタンを押すと、間違った文字でボタンが増えることが想定されます(それ以外の場合は緩めることはできません)。

キャンバスにボタンを作成する方法が分かっていると思います。したがって、各文字に異なる関数を渡します。この関数は、その文字のフラグをtrueに設定し、カウンタを増やします。

void OnClickA() 
{ 
    counterLetter++; 
    FlagA = true; 
    //or an array which is position is one leter index = 0 -> a, index = 1 -> b 
    ArrayLetters[0] = true 
} 

次に、if(counterLetter == 3)をチェックして、期待していたフラグが真であるかどうかをチェックします。必要に応じてこれを実装することができます。フラグをチェックしたり、配列の正しい位置が1に設定されているかどうかを確認します。

プレーヤーが正しいボタンを選択した場合勝利レベル:場合

Application.LoadLevel("VictoryScene"); 

彼は間違い作っ:ユニティの@ ZayedUpal's comment.For新しいバージョン(後than5.3)に基づいて

Application.LoadLevel("LostScene"); 

[編集]を、あなたはinteadを使用する必要があります:

UnityEngine.SceneManagement; 
SceneManager.LoadScene("nameOfScene"); 

このシーンをロードするには、まずEditorで作成する必要があります。 ビルドに追加する必要があります。

File - 存在>Build Settings

あなたがトップウィンドウで構築したいシーンをドラッグ&ドロップします。

enter image description here

だから、後でシーンを変更する機能にLoadLevel()

+1

これは動作するはずです。 2意見:1. Application.LoadLevelは新しいユニティでは機能しません。 SceneManager.LoadSceneを使用する必要があります。 2.ボタンのクリック時にcounterLetterをチェックすることで最適化することができます。更新機能で実際に確認する必要はありません。 – ZayedUpal

+0

@ZayedUpalあなたのご意見ありがとうございます、あなたの意見に基づいて私の答えを編集します –

0

を自分の名前を渡すことができるようになりますユニティではかなり単純です:

using UnityEngine.SceneManagement; 
SceneManager.LoadScene("OtherSceneName"); 

また、シーンのビルドを使用することができますプロジェクトのサイズが大きくなると変更される可能性があるので、私はそれをお勧めしませんが、ビルドメニューにあるインデックスを参照してください:

SceneManager.LoadScene(1); 

この方法でユニティドキュメント: https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html