前提・実現したいこと。
C#で戻るボタンを押したら前の画面に戻るようなプログラムを書いています。
前のシーン名を取得しボタンを押したらSceneManagerでそのシーンへ移動するという機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
ArgumentException: method arguments are incompatible System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method, System.Boolean throwOnBindFailure, System.Boolean allowClosed) (at <695d1cc93cca45069c528c15c9fdd749>:0) System.Delegate.CreateDelegate (System.Type type, System.Object firstArgument, System.Reflection.MethodInfo method) (at <695d1cc93cca45069c528c15c9fdd749>:0) UnityEngine.Events.InvokableCall..ctor (System.Object target, System.Reflection.MethodInfo theFunction) (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0) UnityEngine.Events.PersistentCall.GetRuntimeCall (UnityEngine.Events.UnityEventBase theEvent) (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0) UnityEngine.Events.PersistentCallGroup.Initialize (UnityEngine.Events.InvokableCallList invokableList, UnityEngine.Events.UnityEventBase unityEventBase) (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0) UnityEngine.Events.UnityEventBase.RebuildPersistentCallsIfNeeded () (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0) UnityEngine.Events.UnityEventBase.PrepareInvoke () (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0) UnityEngine.Events.UnityEvent.Invoke () (at <ef667cdc82bf4a4e911d1ddea9ff581d>:0)
該当のソースコード
cs
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.SceneManagement; 5 6public class SceneManagers : MonoBehaviour 7{ 8 public void OnClickStartButton() { 9 string judge; 10 judge = ButtonAdd.judge; 11 Debug.Log(judge); 12 SceneManager.LoadScene(judge); 13 //return judge; 14 } 15} 16
試したこと
Debug.LogでJudgeが前のシーンを取得出来ているのかを調べたところ、取得は出来ていました。
また、エラーの内容は「メソッド引数に互換性がありません」と調べましたが、この引数の互換性がないというのがよくわかっておりません、、、、
大変お手数ですがご教授頂ければ幸いです。
ButtonAddのプログラムはこちらです。
cs
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.SceneManagement; 5 6public class ButtonAdd : MonoBehaviour 7 { 8 public static string judge; 9 10 public void Start() { 11 judge = SceneManager.GetActiveScene().name; 12 } 13 14 public void OnClickStartButton() { 15 16 Debug.Log(SceneManager.GetActiveScene().name); 17 SceneManager.LoadScene("Next0"); 18 } 19} 20
補足情報(FW/ツールのバージョンなど)
Unity 2020.3.9f1
Visual Studio 2017
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/29 14:33