前提・実現したいこと
UnityでScriptableObjectを利用しています。
UnityEventを継承して独自のイベントMyEvent
を作成し、ScriptableObject
を継承したクラスObject
にMyEvent
型のメンバ変数OnEffectLoad
を定義しました。
InspectorビューからEffectA.effect()
メソッドを指定しようと思ったのですが、以下の画像の通り、
リストにEffectA.effect()
メソッドが表示されません。どうすればEffectA.effect()
メソッドを指定できるようになるでしょうか?
よろしくお願いします。
該当のソースコード
Object.cs
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.Events; 5 6[CreateAssetMenu(fileName = "Object", menuName = "Create Object")] 7public class Object : ScriptableObject 8{ 9 [SerializeField] public MyEvent OnEffectLoad = new MyEvent(); 10 11} 12 13[System.Serializable] public class MyEvent : UnityEvent<bool> { } 14
EffectA.cs
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.Events; 5 6[System.Serializable] public class EffectA : MonoBehaviour 7{ 8 [SerializeField] static public UnityAction<bool> Effect = new UnityAction<bool>(Effect); 9 10 [SerializeField] static public void effect(bool is1P) 11 { 12 //効果の記述 13 } 14}
試したこと
Object.csやEffectA.cs内の「[SerializeField]」を「[System.Serializable]」に変更したり、
その逆を行いましたが、結果は変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Unityのバージョン:Unity2019.3.3f1
使用しているPC:Windows 10 Home
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。