// Bind a delegate directly to a specific key, gamepad button, axis, or touch input. public void BindKey(InputChord inputChord, InputEventType inputEventType, KeyInputCallback callback) { if (IsDestroyedOrPendingKill) { throw new UnrealObjectDestroyedException("Trying to bind input key on destroyed input component"); } if (null == callback) { throw new ArgumentNullException("callback"); } UnrealObject targetObj = callback.Target as UnrealObject; unsafe { byte *nativeInputChordBuffer = stackalloc byte[InputChord.NativeDataSize]; inputChord.ToNative(new IntPtr(nativeInputChordBuffer)); RegisterKeyInputCallback(NativeObject, targetObj != null ? targetObj.NativeObject : IntPtr.Zero, nativeInputChordBuffer, inputEventType, callback); } }
unsafe private extern static void RegisterKeyInputCallback(IntPtr nativeComponentPointer, IntPtr nativeTargetObjectPointer, void *nativeInputChord, InputEventType inputEventType, KeyInputCallback callback);