不能将参数传递给侦听器
[System.Serializable]
public class EventGameObject : UnityEvent<GameObject> { }
[CreateAssetMenu]
public class GameObjectEvent : ScriptableObject
{
private readonly List<GameObjectEventListener> eventListeners =
new List<GameObjectEventListener>();
public void Raise(GameObject go)
{
for (int i = eventListeners.Count - 1; i >= 0; i--)
eventListeners[i].OnEventRaised(go);
}
public void RegisterListener(GameObjectEventListener listener)
{
if (!eventListeners.Contains(listener))
eventListeners.Add(listener);
}
public void UnregisterListener(GameObjectEventListener listener)
{
if (eventListeners.Contains(listener))
eventListeners.Remove(listener);
}
}
public class GameObjectEventListener : MonoBehaviour
{
[Tooltip("Event to register with.")]
public GameObjectEvent Event;
[Tooltip("Response to invoke when Event is raised.")]
public EventGameObject Response;
private void OnEnable()
{
Event.RegisterListener(this);
}
private void OnDisable()
{
Event.UnregisterListener(this);
}
public void OnEventRaised(GameObject go)
{
Response.Invoke(go);
}
}
>>>>gameObject X<<<<
public class AIController : MonoBehaviour
{
public EventGameObject OnAIDeath;
private void Start()
{
OnAIDeath.Invoke(gameObject);
}
}
>>>>gameObject Y<<<<
public class SceneMapController : MonoBehaviour
{
public void OnAIDeath(GameObject entityGO)
{
Debug.Log(entityGO);
}
}
GameObjectEventListener在SceneManager游戏对象上,当我将Scriptableobject事件拖到事件插槽上时,我想用作监听器SceneMapController脚本,并使用AIController中的gameobject参数运行方法OnAiDeath(这是另一个游戏对象上的脚本)invoke(gameObject )(查看图片)
简短说明:当gameObject X与AIController脚本一起死亡时,我想将gameObject(已死亡)从gameObject Y传递给侦听器,并使用脚本函数中收到的gameObject。
我在做什么错?我得到此错误,请帮助。Unsupported type EventGameObject https://imgur.com/a/ZhIqiWG大多数代码都来自这里:https://www.youtube.com/watch?v=raQ3iHhE_Kk&t=2325s