シェアする

Unity キャラクター選択をするスクリプト

こんにちは。

今回は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;
}

この様にするだけで、キャラ選択画面が実装できます。コードさえ理解していればあまり難しくはないと思います。

ではまた。