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);
    }
Example #2
0
    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;
        }
    }
Example #4
0
 void OnDestroy()
 {
     suc = null;
 }
Example #5
0
 void Awake()
 {
     suc = FindObjectOfType <ServoUnityController>();
 }