private void OnGUI()
{
if (!WebCore.IsRunning)
return;
Event e = Event.current;
// We only inject keyboard input when the GameObject has focus
if (e.isKey == true && isFocused == true)
{
if (e.type == EventType.KeyDown)
{
if (e.character == 0)
{
WebKeyboardEvent keyEvent = new WebKeyboardEvent();
keyEvent.Type = WebKeyType.KeyDown;
keyEvent.VirtualKeyCode = MapKeys(e);
keyEvent.Modifiers = MapModifiers(e);
webView.InjectKeyboardEvent(keyEvent);
}
else
{
WebKeyboardEvent keyEvent = new WebKeyboardEvent();
keyEvent.Type = WebKeyType.Char;
keyEvent.Text = new ushort[] { e.character, 0, 0, 0 };
keyEvent.Modifiers = MapModifiers(e);
webView.InjectKeyboardEvent(keyEvent);
}
}
if (e.type == EventType.KeyUp)
{
WebKeyboardEvent keyEvent = new WebKeyboardEvent();
keyEvent.Type = WebKeyType.KeyUp;
keyEvent.VirtualKeyCode = MapKeys(e);
keyEvent.Modifiers = MapModifiers(e);
webView.InjectKeyboardEvent(keyEvent);
}
}
// We unfocus each WebView whenever a MouseDown event is encountered in OnGUI.
// The actual focusing of a specific element occurs in OnMouseDown
if (e.type == EventType.MouseDown)
{
Unfocus();
}
if (e.type == EventType.ScrollWheel && isScrollable == true)
{
webView.InjectMouseWheel((int)e.delta.y * -10);
}
}