【Unity】キャラクター選択をするスクリプトをつくってみた

f:id:clrmemory:20171116111416j:plain

 こんにちはクリアメモリです!

今回はUnityを使用したキャラクター選択を実装したので備忘録を兼ねて記載します。Unityでハイスコアなどを保存するPlayerPrefsを使って、キャラクター選択を実装してみました。

 

はじめに

 

まずタイトル画面とキャラクター選択画面、ゲーム画面はできているものとして省きます。

初期設定としてそれぞれのキャラクターはpublic GameObject で指定し、さらにすべてのキャラのオブジェクトは非表示にしておきましょう。

 

 

ここを表示したままにするとエラーが発生します。

すでにアクティブなオブジェクトをアクティブにすることはできないということですかね。今回使用したコードは主にPlayerPrefsとSwitch文のみです。

 

コードを書く

 

始めに、タイトルからキャラクター選択画面に遷移するコードを書きます。 (クリックしたらApplication.LoadLevelなど)

キャラクター選択画面のコードではまずPlayerPrefs.DeleteKey(“保存する名前”)で 初期化しています。

 

これをしないとテスト時にゲーム画面からスタートすると保存したデータが残ったままになってしまいます。

次にキャラごとの選択処理をします。 

 

{

  {

  キャラAをクリックしたらPlayerPrefs.SetInt(“保存する名前”, 1);

  キャラBをクリックしたらPlayerPrefs.SetInt(“保存する名前”, 2);

  キャラCをクリックしたらPlayerPrefs.SetInt(“保存する名前”, 3);

  }

  Application.LoadLevel(“ゲーム画面”);

}

 

といった感じで選択していきます。

 

確認

 

ここまで終わったらゲーム画面のコードに書き加えます。

例えばPlayerControllerのなかでPlayerPrefs.GetInt(“保存する名前”);と書いて引き出します。

 

void Start(){

  Switch(PlayerPrefs.GetInt(“保存する名前”)){

    case 1:

      Player 1.SetActive(true);

   (ついでにここにプレイヤーの能力も書いておけます。)  

      break;

    case 2:

      Player 2.SetActive(true);

      break;

    case 3:

      Player 3.SetActive(true);

      break;

    default :

      break;

}

 

まとめ

 

今回紹介したようににするだけで、キャラ選択画面が実装できます。

コードさえ理解していればあまり難しくはないと思います。

 

ではまた。

 

新着記事