Componente de entrada EBus Interfaz - Guía del usuario de Lumberyard

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Componente de entrada EBus Interfaz

Los subcomponentes de entrada son objetos que tienen la misma vida útil que los componentes y deben anular Activate y Deactivate.

////////////////////////////////////////////////////////////////////////// // InputSubComponent void Activate(const AZ::InputEventNotificationId& channelId) override; void Deactivate(const AZ::InputEventNotificationId& channelId) override;

Puedes utilizar la función GameplayNotificationBus para trabajar con el InputSubComponent. Para obtener más información, consulte GameplayNotifications.

Puede encontrar scripts y código de Lua de ejemplo en la lumberyard_version\dev\Gems\StartingPointInput\Assets\Scripts\Input del directorio.

Introducir notificación de evento [EMPTY]

Utilice las siguientes funciones de notificación con la interfaz de bus de notificación de eventos para comunicarse con otros componentes del juego.

Para obtener más información sobre el uso de la interfaz de bus de eventos (EBus), consulte Trabajar con el sistema de bus de eventos (EBus).

Nombre de la solicitud Descripción Parámetros [EMPTY] Se puede escribir
OnPressed

Evento enviado cuando una entrada supera el umbral.

[EMPTY] Ninguno
OnHeld

Evento enviado cuando una entrada continúa superando el umbral.

[EMPTY] Ninguno
OnReleased

El evento enviado cuando una entrada ya no sobrepasa el umbral.

[EMPTY] Ninguno

ejemplo

local held = { Properties = { IncomingInputEventName = "", OutgoingGameplayEventName = "", }, } function held:OnActivate() local inputBusId = InputEventNotificationId(self.Properties.IncomingInputEventName) self.inputBus = InputEventNotificationBus.Connect(self, inputBusId) end function held:OnHeld(floatValue) GameplayNotificationBus.Event.OnEventUpdating(GameplayNotificationId(self.entityId, self.Properties.OutgoingGameplayEventName), floatValue) end function held:OnReleased(floatValue) GameplayNotificationBus.Event.OnEventEnd(GameplayNotificationId(self.entityId, self.Properties.OutgoingGameplayEventName), floatValue) end function held:OnDeactivate() self.inputBus:Disconnect() end return held

Bus de solicitud de entrada

Utilice las siguientes funciones con la interfaz de bus de solicitud de entrada para comunicarse con otros componentes del juego.

Para obtener más información sobre el uso de la interfaz de bus de eventos (EBus), consulte Trabajar con el sistema de bus de eventos (EBus).

Nombre de la solicitud Descripción Parámetros [EMPTY] Se puede escribir
PushContext

Inserta un nuevo contexto en la pila, que se convierte en el activo del contexto.

Cadena Ninguno
PopContext

Elimina el contexto superior de la pila de contexto de entrada.

Ninguno Ninguno
PopAllContexts

Borra la pila de contexto y el contexto activo se convierte en el cadena vacía: ""

Ninguno Cadena vacía
GetCurrentContext

Devuelve el contexto en la parte superior de la pila. Si la pila es vacío, devuelve: ""

Ninguno Cadena

ejemplo Contextos de entrada

Puedes utilizar la función Contextos de entrada parámetro para especificar qué El enlace de activos de contexto de está disponible. Por ejemplo, puede cambiar contextos para que cuando un personaje está bajo el agua, los eventos de entrada son diferentes de cuando el el personaje está en el suelo.

Por ejemplo, para el Entrada componente, puede especificar Contextos de entrada, como una cadena vacía, "under water", y "run". Cuando añades un [EMPTY] del componente a la entidad, puede especificar el diferente Contextos de entradade "under water", y "run" en su script de Lua.

Esto significa que cuando se ejecuta el script de Lua, el script de Lua le indica a la Entrada Componente de : qué contexto utilizar.

local foo { Properties = { Context {default = "", description = "A context to push onto the input stack. Like console, or UI, or turret, under water, etc."}, } } function foo:OnActivate() -- by default the context is blank "" InputRequestBus.Broadcast.PushContext(self.Properties.Context) -- context stack is now 1)user defined property InputRequestBus.Broadcast.PushContext("under water") -- context stack is now 1)user defined property, 2) "under water" Debug.Log(InputRequestBus.Broadcast.GetCurrentContext()) -- prints "under water" InputRequestBus.Broadcast.PushContext("run") -- context stack is now 1)use defined property, 2) "under water", 3) "run" InputRequestBus.Broadcast.PopContext() -- context stack is now 1)user defined property, 2) "under water" InputRequestBus.Broadcast.PopAllContexts() context stack is now empty end return foo