実現したいこと
今私が開発中のゲームの難易度選択画面を作っています
3つのボタンがあり、それぞれボタンを押したときにCanvasにアタッチしているスクリプトの関数に1~3のintの引数を渡したいのですが
発生している問題・分からないこと
1を関数に渡すボタンなのに2が渡されてしまう のように、
なぜか指定した引数ではないものが関数におくられてしまいます。
ボタンを作り直してもまた別のボタンで同じ現象が起きてしまい
どこに問題があるのかわからない状態です。
該当のソースコード
↓Canvasにアタッチしている引数をもらう関数 public void OnDifficultButton(int d) //1:easy 2:normal 3:hard { Debug.Log(d); ←このログの時点で指定された引数ではない GameManager.difficult = d; SceneManager.LoadScene("GameScene"); }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
表現がうまくできず、インターネットで調べても情報がでてきませんでした。
これはCanvasの設定問題なのでしょうか、それとも各ボタンに問題があるのでしょうか?
もし分かる方がいらっしゃいましたらご回答お願いします。
補足
Unityのバージョンは 2021.1.24f1 Personalです
↓CanvasとEventSystemの設定の画像
↓ボタン設定
どのように設定していますか?
画像で提示してください。
補足に画像を載せていただきましたm(_ _ )m
画像ではOnDifficultButtonではなくOnEasyButtonになっていますが、正しいのはどちらですか?
また、「SceneManager.LoadScene("GameScene");」では基本的に全てのゲームオブジェクトが破棄されます。
static変数を用いる、DontDestroyOnLoad()で指定する、など、破棄を回避する方法は取られていますか?
あ すいませんOnEasyButtonです
名前が分かりづらかったのでteratailの方ではDifficultという名前にしました
static変数にintを格納しています

回答1件
あなたの回答
tips
プレビュー