unity5にてキャラクター選択スクリプトを作っています。
選択画面にて任意のボタンを選択すると、プレイ画面に移行し、
該当のキャラクターがステージ上に表示される挙動を目指したいです。
書いたスクリプトは以下の通りです。
<選択画面>
C#
1public class charaSelect : MonoBehaviour { 2 3 Button m; 4 Button f; 5 6 void Start () 7 { 8 Cursor.visible = false; //マウスカーソルを非表示 9 Cursor.lockState = CursorLockMode.Locked; //マウスカーソルを固定 10 PlayerPrefs.DeleteKey ("chara"); 11 m = GameObject.Find("M_button").GetComponent<Button>(); //男性キャラ選択ボタン 12 f = GameObject.Find("F_button").GetComponent<Button>(); //女性キャラ選択ボタン 13 m.Select (); //最初は男性キャラ選択ボタンを選択した状態 14 } 15 16 17 void Update () 18 { 19 if (Input.GetKeyDown (KeyCode.LeftArrow)) //矢印キーで選択 20 { 21 m.Select (); 22 PlayerPrefs.SetInt("chara", 1); //charaに1をセット 23 } 24 else if (Input.GetKeyDown (KeyCode.RightArrow)) //矢印キーで選択 25 { 26 f.Select (); 27 PlayerPrefs.SetInt("chara", 2); //charaに2をセット 28 } 29 if (Input.GetKeyDown (KeyCode.Space)) //スペースキーで決定しプレイ画面へ 30 { 31 SceneManager.LoadScene ("play"); 32 } 33 } 34}
<プレイ画面>(空のゲームオブジェクトに割り当てています)
C#
1public class startChara : MonoBehaviour { 2 3 public GameObject M; 4 public GameObject F; 5 int state = PlayerPrefs.GetInt ("chara"); 6 7 8 void Start () 9 { 10 switch (state) 11 { 12 //charaが1のとき=男性キャラ選択ボタンを押したとき男性キャラを表示 13 case 1: 14 M.SetActive (true); 15 break; 16 //charaが2のとき=女性キャラ選択ボタンを押したとき女性キャラを表示 17 case 2: 18 19 F.SetActive (true); 20 break; 21 22 default : 23 break; 24 } 25 }
プレイ画面では最初キャラ両方を非表示にしています。
スクリプトを実行すると、プレイ画面に移行した際、両方非表示のままで、charaにセットした値が有効になっていないようです。
選択画面に問題(PlayerPrefs.SetInt)があるのか、プレイ画面に問題(PlayerPrefs.GetInt)があるのか……
ご教授いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/31 14:02