SuperAPI AI Directory

unity-event

General & other

View repository

Updated 10-15 17:25

About this skill

Before calling any skill in this module: if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via GET /skills/recommend?includeSchema=true) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.

Triggers

  • Hooking up UnityEvents in the Inspector
  • Wiring button or trigger callbacks
  • Scripting persistent listeners
  • Hook up UnityEvent in the Inspector, connect button or trigger callbacks, scripted persistent listeners
Event Skills

Inspect and modify persistent listeners on UnityEvents (e.g. Button.onClick, Toggle.onValueChanged) — the same listeners you see in the Inspector's event drop slots.

Operating Mode

  • Approval: query-type skills (event_get_listeners / event_list_events / event_get_listener_count, source marked SkillMode.SemiAuto) execute directly; the remaining change/invocation types (event_add_listener / event_set_listener / event_set_listener_state / event_invoke / event_add_listener_batch / event_copy_listeners, marked SkillMode.FullAuto) require user grant; after grant, the server executes in one step and returns the result.
  • Auto / Bypass: skills not blocked by the disabled list execute directly.
  • This modulecontains Delete-type skills:event_remove_listener、event_clear_listeners marked as SkillOperation.Delete, statically intercepted by IsForbiddenInSemi — only Bypass mode or joining Allowlist can invoke it.
  • event_invoke is only effective in Play mode / runtime; when running empty in the editor, only EditorAndRuntime listeners are triggered.event_add_listener etc. write persistent listeners (serialized to prefab/scene), so they can be configured in the editor.

DO NOT (common hallucinations):

  • event_create / event_trigger do not exist → UnityEvents are declared in component source code; this module only wires listeners
  • event_subscribe does not exist → use event_add_listener
  • event_remove does not exist → use event_remove_listener
  • event_add_listener requires exact component type and method name on the target

Routing:

  • For XR interaction events → use xr module's xr_add_interaction_event
  • For C# event code → write via script module

Skills

event_get_listeners

Get persistent listeners of a UnityEvent.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name (e.g. "onClick")

Returns: { success, gameObject, component, eventName, listenerCount, listeners }

event_add_listener

Add a persistent listener to a UnityEvent (Editor time).

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component owning the event
eventName string Yes - Event field name (e.g. "onClick")
targetObjectName string Yes - GameObject holding the method to call
targetComponentName string No null Component on the target, or GameObject to call the object itself
methodName string Yes - Public method or set_PropertyName
mode string No RuntimeOnly Off, RuntimeOnly, or EditorAndRuntime
argType string No void void, int, float, string, or bool
floatArg float No 0 Static float argument
intArg int No 0 Static int argument
stringArg string No null Static string argument
boolArg bool No false Static bool argument

Returns: { success, message, index, mode }

Unlike event_set_listener, this skill has no object argType — it only reaches the standard UnityEvent overloads.

event_remove_listener

Remove a persistent listener by index.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name
index int No 0 Listener index

Returns: { success, remainingCount }

event_invoke

Invoke a UnityEvent explicitly (Runtime only).

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name

Returns: { success, message }

event_clear_listeners

Remove all persistent listeners from a UnityEvent.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name (e.g. "onClick")

Returns: { success, removed }

event_set_listener_state

Set a listener's call state (Off, RuntimeOnly, EditorAndRuntime).

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name
index int No 0 Listener index
state string No null Call state: "Off", "RuntimeOnly", or "EditorAndRuntime"

Returns: { success, index, state }

event_set_listener

Replace a persistent listener at a specific index.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Source component name
eventName string Yes - Event field name
index int No 0 Listener index to replace
targetName string Yes - Target GameObject name
targetInstanceId int No 0 Target GameObject instance ID
targetPath string No null Target hierarchy path
targetComponentName string No null Target component name, or GameObject
methodName string Yes - Public method or set_PropertyName
mode string No RuntimeOnly Off, RuntimeOnly, or EditorAndRuntime
argType string No void void, int, float, string, bool, object
floatArg float No 0 Static float argument
intArg int No 0 Static int argument
stringArg string No null Static string argument
boolArg bool No false Static bool argument
objectReferenceName string No null Scene object argument name
objectReferenceInstanceId int No 0 Scene object argument instance ID
objectReferencePath string No null Scene object argument path
objectAssetPath string No null Project asset argument path
objectType string No null Object/component type for object argument

Returns: { success, index, target, targetType, method, state, argType }

event_list_events

List all UnityEvent fields on a component.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name

Returns: { success, component, count, events }

event_add_listener_batch

Add multiple listeners at once. items: JSON array of {targetObjectName, targetComponentName, methodName}.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name
items string Yes - JSON array of {targetObjectName, targetComponentName, methodName}

Returns: { success, added, total }

event_copy_listeners

Copy listeners from one event to another.

Parameter Type Required Default Description
sourceObject string Yes - Source GameObject name
sourceComponent string Yes - Source component name
sourceEvent string Yes - Source event field name
targetObject string Yes - Target GameObject name
targetComponent string Yes - Target component name
targetEvent string Yes - Target event field name

Returns: { success, copied }

event_get_listener_count

Get the number of persistent listeners on a UnityEvent.

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 GameObject instance ID
path string No null GameObject hierarchy path
componentName string Yes - Component name
eventName string Yes - Event field name

Returns: { success, count }


Exact Signatures

Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.