static void OnServoWindowCreated(int uid, int windowIndex, int widthPixels, int heightPixels, int formatNative) { TextureFormat format = ServoUnityTextureUtils.GetTextureFormatFromNativeTextureFormat(formatNative); if (widthPixels == 0 || heightPixels == 0 || format == (TextureFormat)0) { Debug.LogError("OnServoWindowCreated got invalid format."); return; } // If we initiated the creation of the new window, this find operation will succeed. But // if Servo initiated the creation, then there isn't yet a Unity object backing it, so // we'll need to create one. ServoUnityWindow window = ServoUnityWindow.FindWindowWithUID(uid); if (window == null) { ServoUnityController suc = FindObjectOfType <ServoUnityController>(); // Create it on the same gameobject holding the ServoUnityController. if (!suc) { Debug.LogError("ServoUnityController.OnServoWindowCreated: Couldn't find a ServoUnityController."); return; } window = ServoUnityWindow.CreateNewInParent(suc.transform.parent.gameObject); } window.WasCreated(windowIndex, widthPixels, heightPixels, format); }
private Vector2 lookAroundFactor = new Vector2(0.0f, 0.0f); // Normalised look around input. void Awake() { suc = FindObjectOfType <ServoUnityController>(); c = gameObject.GetComponent <Camera>(); if (c == null) { c = Camera.main; } }
static void OnServoBrowserEvent(int uid, int eventType, int eventData0, int eventData1, System.String eventDataS) { ServoUnityWindow window = ServoUnityWindow.FindWindowWithUID(uid); if (window == null) { Debug.LogError("ServoUnityController.OnServoBrowserEvent: Received event for a window that doesn't exist."); return; } ServoUnityController suc = FindObjectOfType <ServoUnityController>(); // Create it on the same gameobject holding the ServoUnityController. if (!suc) { Debug.LogError("ServoUnityController.OnServoBrowserEvent: Couldn't find a ServoUnityController."); return; } switch ((ServoUnityPlugin.ServoUnityBrowserEventType)eventType) { case ServoUnityPlugin.ServoUnityBrowserEventType.NOP: break; case ServoUnityPlugin.ServoUnityBrowserEventType.Shutdown: // Browser has shut down. suc.waitingForShutdown = false; break; case ServoUnityPlugin.ServoUnityBrowserEventType.LoadStateChanged: { Debug.Log($"Servo browser event: load {(eventData0 == 1 ? "began" : "ended")}."); if (suc.navbarController) { suc.navbarController.OnLoadStateChanged(eventData0 == 1); } } break; case ServoUnityPlugin.ServoUnityBrowserEventType.IMEStateChanged: { Debug.Log($"Servo browser event: {((eventData0 == 1 || eventData0 == 2) ? "show" : "hide")} IME with text=\"" + eventDataS + "\", textIndex=" + eventData1 + ", multiline=" + (eventData0 == 2)); if (suc.ime != null) { if (eventData0 == 1 || eventData0 == 2) { suc.ime.ShowIMEForWindowWithInitialText(window.WindowIndex, eventDataS, eventData1, (eventData0 == 2)); } else { suc.ime.HideIME(); } } } break; case ServoUnityPlugin.ServoUnityBrowserEventType.FullscreenStateChanged: { switch (eventData0) { case 0: // Will enter fullscreen. Should e.g. hide windows and other UI. Debug.Log("Servo browser event: will enter fullscreen."); break; case 1: // Did enter fullscreen. Should e.g. show an "exit fullscreen" control. Debug.Log("Servo browser event: did enter fullscreen."); break; case 2: // Will exit fullscreen. Should e.g. hide "exit fullscreen" control. Debug.Log("Servo browser event: will exit fullscreen."); break; case 3: // Did exit fullscreen. Should e.g. show windows and other UI. Debug.Log("Servo browser event: did exit fullscreen."); break; default: break; } } break; case ServoUnityPlugin.ServoUnityBrowserEventType.HistoryChanged: { Debug.Log($"Servo browser event: history changed, {(eventData0 == 1 ? "can" : "can't")} go back, {(eventData1 == 1 ? "can" : "can't")} go forward."); suc.navbarController.OnHistoryChanged(eventData0 == 1, eventData1 == 1); } break; case ServoUnityPlugin.ServoUnityBrowserEventType.TitleChanged: { Debug.Log("Servo browser event: title changed."); suc.navbarController.OnTitleChanged(suc.servo_unity_plugin.ServoUnityGetWindowTitle(window.WindowIndex)); } break; case ServoUnityPlugin.ServoUnityBrowserEventType.URLChanged: { Debug.Log("Servo browser event: URL changed."); suc.navbarController.OnURLChanged(suc.servo_unity_plugin.ServoUnityGetWindowURL(window.WindowIndex)); } break; default: Debug.Log("Servo browser event: unknown event."); break; } }
void OnDestroy() { suc = null; }
void Awake() { suc = FindObjectOfType <ServoUnityController>(); }