Esempio n. 1
0
    void Start()
    {
        Application.targetFrameRate = 60;

        _controllerOffsetPosition = _positionOffsetRightHand;

        // Get a reference to the HandheldControllerBridge Monobehaviour
        _controllerBridge = handheldControllerBridge.GetComponent <HandheldControllerBridge>();

        // OPTIONAL: How many data packages to retain. Set to 0 if you only want to have access to the most recent data package received from the controller.
        // _controllerBridge.SetDataStorageSize( 10 );

        // OPTIONAL: Override the deafult calibration time here.
        // _controllerBridge.SetCalibrationDelayTime( 4f );

        // OPTIONAL: override Service and Characteristic UUIDs here:
        // _controllerBridge.SetBLEService( "0000fe55-0000-1000-8000-00805f9b34fb" );
        // _controllerBridge.SetBLECharacteristic( "00000001-1000-1000-8000-00805f9b34fb" );

        /////////////////////////

        // Used for calculating the achieved FPS
        _frameTimeLast = Time.time;
        _frameTimeNext = Time.time + 1f;

        // Configure the Canvas UIs
        _controllerBridgeCanvas = GameObject.Find("Canvas");

        _autoConnectBtn = _controllerBridgeCanvas.transform.Find("AutoConnectButton").GetComponent <Button>();
        _autoConnectBtn.onClick.AddListener(AutoConnectBtnClickedHandler);
        _autoConnectBtn.enabled = true;

        _fpsCanvas = GameObject.Find("CanvasFPS");
        _autoConnectStatusLabel      = _fpsCanvas.transform.Find("FPSLabel").GetComponent <Text>();
        _autoConnectStatusLabel.text = "FPS: Default";

        _statusLabel      = _controllerBridgeCanvas.transform.Find("StatusMsg").GetComponent <Text>();
        _statusLabel.text = _statusMsgStart;

        _scanBtn = _controllerBridgeCanvas.transform.Find("ScanButton").GetComponent <Button>();
        _scanBtn.onClick.AddListener(ScanBtnClickedHandler);
        _scanBtn.enabled = true;

        _dropDownGO      = _controllerBridgeCanvas.transform.Find("Dropdown").gameObject;
        _devicesDropdown = _dropDownGO.GetComponent <Dropdown>();
        _devicesDropdown.captionText.text = _dropdownCaptionStart;
        _devicesDropdown.onValueChanged.AddListener(DevicesDropDownSelectedHandler);
        _devicesDropdown.enabled = false;

        _connectBtn = _controllerBridgeCanvas.transform.Find("ConnectButton").GetComponent <Button>();
        _connectBtn.onClick.AddListener(ConnectBtnClickedHandler);
        _connectBtn.enabled = false;

        _disconnectBtn = _controllerBridgeCanvas.transform.Find("DisconnectButton").GetComponent <Button>();
        _disconnectBtn.onClick.AddListener(DisconnectBtnClickedHandler);
        _disconnectBtn.enabled = true;

        _handheldControllerCanvas = GameObject.Find("CanvasResults");
        _handheldControllerValues = _handheldControllerCanvas.GetComponentsInChildren <Text>();
        int i;

        for (i = 0; i < 22; i++)
        {
            _handheldControllerValues[i].text = string.Format("default: {0}", i);
        }

        _balloonScripts = new List <Balloon>();
        for (i = 0; i < balloonCount; i++)
        {
            GameObject tBalloon       = Instantiate(Resources.Load <GameObject>("Balloon"));
            Balloon    tBalloonScript = tBalloon.GetComponent <Balloon>();
            tBalloonScript.InitializeValues(xPosMin, xPosMax, yPosMin, yPosMax, zPosMin, zPosMax, yVelMin, yVelMax);
            StartCoroutine(tBalloonScript.ResetBalloon(false));
            tBalloonScript.CustomizeInitialAppearance(balloonScale);
            _balloonScripts.Add(tBalloonScript);
        }

        _controllerDisplayLaser = controllerDisplay.transform.Find("beam").gameObject;

        // Subscribe to the Up/Down button Actions
        _controllerBridge.TouchBtnDown    += TouchBtnDownHandler;
        _controllerBridge.TouchBtnUp      += TouchBtnUpHandler;
        _controllerBridge.MainBtnDown     += MainBtnDownHandler;
        _controllerBridge.MainBtnUp       += MainBtnUpHandler;
        _controllerBridge.AppBtnDown      += AppBtnDownHandler;
        _controllerBridge.AppBtnUp        += AppBtnUpHandler;
        _controllerBridge.AppBtnUp        += ChangeCanvasDisplayHandler;
        _controllerBridge.HomeBtnDown     += HomeBtnDownHandler;
        _controllerBridge.HomeBtnUp       += HomeBtnUpHandler;
        _controllerBridge.VolPlusBtnDown  += VolPlusBtnDownHandler;
        _controllerBridge.VolPlusBtnUp    += VolPlusBtnUpHandler;
        _controllerBridge.VolMinusBtnDown += VolMinusBtnDownHandler;
        _controllerBridge.VolMinusBtnUp   += VolMinusBtnUpHandler;

        // Subscribe to each BLE state change on _controllerBridge
        _controllerBridge.BLEActive             += BLEActiveHandler;
        _controllerBridge.BLEInactive           += BLEInactiveHandler;
        _controllerBridge.BLEConnecting         += BLEConnectingHandler;
        _controllerBridge.BLEConnectionComplete += BLEConnectionCompleteHandler;
        _controllerBridge.BLEScanning           += BLEScanningHandler;
        _controllerBridge.BLEScanComplete       += BLEScanCompleteHandler;

        // Respond to Controller Calibration state changes
        _controllerBridge.DelayedCalibrationBegan     += ControllerCalibrationBeganHandler;
        _controllerBridge.DelayedCalibrationCancelled += ControllerCalibrationCancelledHandler;
        _controllerBridge.CalibrationComplete         += ControllerCalibrationCompleteHandler;
    }