示例#1
0
    public float GetAxis( CAVE2Manager.Axis axis )
    {
        switch(axis)
        {
            case( CAVE2Manager.Axis.LeftAnalogStickLR ): return leftAnalogStick.x;
            case( CAVE2Manager.Axis.LeftAnalogStickUD ): return leftAnalogStick.y;
            case( CAVE2Manager.Axis.RightAnalogStickLR ): return rightAnalogStick.x;
            case( CAVE2Manager.Axis.RightAnalogStickUD ): return rightAnalogStick.y;
            case( CAVE2Manager.Axis.AnalogTriggerL ): return analogTrigger.x;
            case( CAVE2Manager.Axis.AnalogTriggerR ): return analogTrigger.y;

            case( CAVE2Manager.Axis.LeftAnalogStickLR_Inverted ): return -leftAnalogStick.x;
            case( CAVE2Manager.Axis.LeftAnalogStickUD_Inverted ): return -leftAnalogStick.y;
            case( CAVE2Manager.Axis.RightAnalogStickLR_Inverted ): return -rightAnalogStick.x;
            case( CAVE2Manager.Axis.RightAnalogStickUD_Inverted ): return -rightAnalogStick.y;
            case( CAVE2Manager.Axis.AnalogTriggerL_Inverted ): return -analogTrigger.x;
            case( CAVE2Manager.Axis.AnalogTriggerR_Inverted ): return -analogTrigger.y;

            default: return 0;
        }
    }
示例#2
0
 public static bool IsMaster()
 {
     return(CAVE2Manager.IsMaster());
 }
示例#3
0
 public static string CAVE2ToGetReal3DAxis(CAVE2.Axis name)
 {
     return(CAVE2Manager.CAVE2ToGetReal3DAxis(name));
 }
示例#4
0
 public static CAVE2.Axis GetReal3DToCAVE2Axis(string name)
 {
     return(CAVE2Manager.GetReal3DToCAVE2Axis(name));
 }
示例#5
0
 public void InitOmicron()
 {
     omicronManager = CAVE2Manager.GetCAVE2Manager().GetComponent <OmicronManager>();
     omicronManager.AddClient(this);
 }
    // Update is called once per frame
    void Update()
    {
        wandPosition = CAVE2Manager.GetWandPosition(wandID);
        wandRotation = CAVE2Manager.GetWandRotation(wandID);

        headPosition = CAVE2Manager.GetHeadPosition(headID);
        headRotation = CAVE2Manager.GetHeadRotation(headID).eulerAngles;

        if (headPosition.y == 0)
        {
            Debug.LogWarning("OmicronPlayerController: Head is at height (Y) 0.0 - This should never happen! Check your tracking system or enable mocap emulation in CAVE2Manager.");
        }

        if (!freezeMovement)
        {
            forward  = CAVE2Manager.GetAxis(wandID, forwardAxis);
            forward *= movementScale;

            strafe  = CAVE2Manager.GetAxis(wandID, strafeAxis);
            strafe *= movementScale;

            lookAround.x  = CAVE2Manager.GetAxis(wandID, lookUDAxis);
            lookAround.x *= movementScale;
            lookAround.y  = CAVE2Manager.GetAxis(wandID, lookLRAxis);
            lookAround.y *= movementScale;

            vertical  = CAVE2Manager.GetAxis(wandID, verticalAxis);
            vertical *= movementScale;
        }

        freeflyButtonDown = CAVE2Manager.GetButton(wandID, freeFlyButton);

        if (CAVE2Manager.GetButtonDown(wandID, freeFlyToggleButton))
        {
            navMode++;
            if ((int)navMode > 2)
            {
                navMode = 0;
            }

            SetNavigationMode((int)navMode);
        }

        if (CAVE2Manager.GetButtonDown(wandID, autoLevelButton))
        {
            transform.localEulerAngles = new Vector3(0, transform.localEulerAngles.y, 0);
        }

        if (CAVEFloor && !CAVEFloor.activeSelf)
        {
            CAVEFloor.SetActive(true);
        }

        if (CAVEFloor && showCAVEFloorOnlyOnMaster && CAVEFloor.activeSelf && !CAVE2Manager.IsMaster())
        {
            CAVEFloor.SetActive(false);
        }
        else if (CAVEFloor && !showCAVEFloorOnlyOnMaster && !CAVEFloor.activeSelf)
        {
            CAVEFloor.SetActive(true);
        }
    }
示例#7
0
    // ---------------------------------------------------------------------------------------------


    // CAVE2 Input Management ----------------------------------------------------------------------
    public static bool UsingOmicronServer()
    {
        return(CAVE2Manager.UsingOmicronServer());
    }
示例#8
0
 public static bool IsHeadRegistered(int headID, GameObject gameobject)
 {
     return(CAVE2Manager.GetCAVE2Manager().IsHeadRegistered(headID, gameobject));
 }
示例#9
0
 public static float GetAxis(int wandID, CAVE2.Axis axis)
 {
     return(CAVE2Manager.GetAxis(wandID, axis));
 }
    // Update is called once per frame
    void Update()
    {
        leftAnalogStick  = new Vector2(CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.LeftAnalogStickLR), CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.LeftAnalogStickUD));
        rightAnalogStick = new Vector2(CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.RightAnalogStickLR), CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.RightAnalogStickUD));
        analogTriggers   = new Vector2(CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.AnalogTriggerL), CAVE2Manager.GetAxis(wandID, CAVE2Manager.Axis.AnalogTriggerR));

        if (buttonL3)
        {
            buttonL3.transform.localEulerAngles = new Vector3(leftAnalogStick.y, 0, -leftAnalogStick.x) * 30;
        }
        if (buttonR3)
        {
            buttonR3.transform.localEulerAngles = new Vector3(rightAnalogStick.y, 0, -rightAnalogStick.x) * 30;
        }

        if (buttonL2)
        {
            buttonL2.transform.localEulerAngles = new Vector3(0, 90, analogTriggers.x * 20);
        }
        if (buttonR2)
        {
            buttonR2.transform.localEulerAngles = new Vector3(0, 90, analogTriggers.y * 20);
        }

        // Tests if hold state is working properly (public state varibles should change)
        cross    = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button3);
        circle   = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button2);
        triangle = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button1);
        square   = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button4);

        up    = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.ButtonUp);
        down  = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.ButtonDown);
        left  = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.ButtonLeft);
        right = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.ButtonRight);

        L1 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button5);
        L2 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button7);
        L3 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button6);

        R1 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button8);
        //R2 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button9);
        R3 = CAVE2Manager.GetButtonState(wandID, CAVE2Manager.Button.Button9);

        // Tests if up/down is working (visual buttons should change)
        CheckButtonState((int)CAVE2Manager.Button.Button3, cross);
        CheckButtonState((int)CAVE2Manager.Button.Button2, circle);
        CheckButtonState((int)CAVE2Manager.Button.Button1, triangle);
        CheckButtonState((int)CAVE2Manager.Button.Button4, square);

        CheckButtonState((int)CAVE2Manager.Button.ButtonUp, up);
        CheckButtonState((int)CAVE2Manager.Button.ButtonDown, down);
        CheckButtonState((int)CAVE2Manager.Button.ButtonLeft, left);
        CheckButtonState((int)CAVE2Manager.Button.ButtonRight, right);

        CheckButtonState((int)CAVE2Manager.Button.Button5, L1);
        CheckButtonState((int)CAVE2Manager.Button.Button7, L2);
        CheckButtonState((int)CAVE2Manager.Button.Button6, L3);

        CheckButtonState((int)CAVE2Manager.Button.Button8, R1);
        //CheckButtonState((int)CAVE2Manager.Button.Button9, R2);
        CheckButtonState((int)CAVE2Manager.Button.Button9, R3);
    }
示例#11
0
 public bool GetButton( CAVE2Manager.Button button )
 {
     switch(button)
     {
         case(CAVE2Manager.Button.Button1): return button1 == ButtonState.Held;
         case(CAVE2Manager.Button.Button2): return button2 == ButtonState.Held;
         case(CAVE2Manager.Button.Button3): return button3 == ButtonState.Held;
         case(CAVE2Manager.Button.Button4): return button4 == ButtonState.Held;
         case(CAVE2Manager.Button.Button5): return button5 == ButtonState.Held;
         case(CAVE2Manager.Button.Button6): return button6 == ButtonState.Held;
         case(CAVE2Manager.Button.Button7): return button7 == ButtonState.Held;
         case(CAVE2Manager.Button.Button8): return button8 == ButtonState.Held;
         case(CAVE2Manager.Button.Button9): return button9 == ButtonState.Held;
         case(CAVE2Manager.Button.SpecialButton1): return buttonSP1 == ButtonState.Held;
         case(CAVE2Manager.Button.SpecialButton2): return buttonSP2 == ButtonState.Held;
         case(CAVE2Manager.Button.SpecialButton3): return buttonSP3 == ButtonState.Held;
         case(CAVE2Manager.Button.ButtonUp): return buttonUp == ButtonState.Held;
         case(CAVE2Manager.Button.ButtonDown): return buttonDown == ButtonState.Held;
         case(CAVE2Manager.Button.ButtonLeft): return buttonLeft == ButtonState.Held;
         case(CAVE2Manager.Button.ButtonRight): return buttonRight == ButtonState.Held;
         default: return false;
     }
 }
 // Use this for initialization
 public void Start()
 {
     cave2Manager = GameObject.FindGameObjectWithTag("OmicronManager").GetComponent<CAVE2Manager>();
 }
示例#13
0
 public WandEvent(int ID, CAVE2Manager.Button button)
 {
     wandID = ID;
     this.button = button;
 }
示例#14
0
    public static bool GetButtonUp(int wandID, CAVE2Manager.Button button)
    {
        if( wandID == 1 )
        {
            return CAVE2Manager.wand1.GetButtonUp(button);
        }
        else if( wandID == 2 )
        {
            return CAVE2Manager.wand2.GetButtonUp(button);
        }

        return false;
    }
示例#15
0
 public static bool UsingGetReal3D()
 {
     return(CAVE2Manager.UsingGetReal3D());
 }
示例#16
0
 public static bool GetButtonUp(int wandID, CAVE2.Button button)
 {
     return(CAVE2Manager.GetButtonUp(wandID, button));
 }
示例#17
0
 public static void RegisterHeadObject(int headID, GameObject gameobject)
 {
     CAVE2Manager.GetCAVE2Manager().RegisterHeadObject(headID, gameobject);
 }
示例#18
0
 public static OmicronController.ButtonState GetButtonState(int wandID, CAVE2.Button button)
 {
     return(CAVE2Manager.GetButtonState(wandID, button));
 }
示例#19
0
    public static WandState.ButtonState GetButtonState(int wandID, CAVE2Manager.Button button)
    {
        if( wandID == 1 )
        {
            return CAVE2Manager.wand1.GetButtonState((int)button);
        }
        else if( wandID == 2 )
        {
            return CAVE2Manager.wand2.GetButtonState((int)button);
        }

        return 0;
    }
示例#20
0
 public static CAVE2.Button GetReal3DToCAVE2Button(string name)
 {
     return(CAVE2Manager.GetReal3DToCAVE2Button(name));
 }
示例#21
0
    // Update is called once per frame
    void Update()
    {
        GetComponent <SphereCollider>().enabled = false; // Disable sphere collider for raycast

        laserActivated = CAVE2Manager.GetButton(wandID, laserButton);
        laser.enabled  = laserActivated;

        // Shoot a ray from the wand
        Ray        ray = new Ray(transform.position, transform.TransformDirection(Vector3.forward));
        RaycastHit hit;

        // Get the first collider that was hit by the ray
        wandHit = Physics.Raycast(ray, out hit, 100, wandLayerMask);
        Debug.DrawLine(ray.origin, hit.point); // Draws a line in the editor

        if (wandHit)                           // The wand is pointed at a collider
        {
            // Send a message to the hit object telling it that the wand is hovering over it
            hit.collider.gameObject.SendMessage("OnWandOver", SendMessageOptions.DontRequireReceiver);

            // If the laser button has just been pressed, tell the hit object
            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.Button3))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", laserButton, SendMessageOptions.DontRequireReceiver);
            }

            // If the laser button has just been pressed, tell the hit object
            if (CAVE2Manager.GetButtonUp(wandID, CAVE2Manager.Button.Button3))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonUp", laserButton, SendMessageOptions.DontRequireReceiver);
            }

            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.Button2))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", CAVE2Manager.Button.Button2, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButtonUp(wandID, CAVE2Manager.Button.Button2))
            {
                hit.collider.gameObject.SendMessage("OnWandGrabRelease", SendMessageOptions.DontRequireReceiver);
            }

            if (CAVE2Manager.GetButton(wandID, CAVE2Manager.Button.Button2))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonHold", CAVE2Manager.Button.Button2, SendMessageOptions.DontRequireReceiver);
            }

            // DPad Click
            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.ButtonUp))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", CAVE2Manager.Button.ButtonUp, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.ButtonDown))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", CAVE2Manager.Button.ButtonDown, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.ButtonLeft))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", CAVE2Manager.Button.ButtonLeft, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButtonDown(wandID, CAVE2Manager.Button.ButtonRight))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonDown", CAVE2Manager.Button.ButtonRight, SendMessageOptions.DontRequireReceiver);
            }

            // DPad Hold
            if (CAVE2Manager.GetButton(wandID, CAVE2Manager.Button.ButtonUp))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonHold", CAVE2Manager.Button.ButtonUp, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButton(wandID, CAVE2Manager.Button.ButtonDown))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonHold", CAVE2Manager.Button.ButtonDown, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButton(wandID, CAVE2Manager.Button.ButtonLeft))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonHold", CAVE2Manager.Button.ButtonLeft, SendMessageOptions.DontRequireReceiver);
            }
            if (CAVE2Manager.GetButton(wandID, CAVE2Manager.Button.ButtonRight))
            {
                hit.collider.gameObject.SendMessage("OnWandButtonHold", CAVE2Manager.Button.ButtonRight, SendMessageOptions.DontRequireReceiver);
            }

            // Laser button is held down
            if (laserActivated)
            {
                // Tell hit object laser button is held down
                hit.collider.gameObject.SendMessage("OnWandButtonHold", laserButton, SendMessageOptions.DontRequireReceiver);

                Debug.DrawLine(ray.origin, hit.point);

                // Set the laser distance at the collision point
                laserDistance = hit.distance;
                laserPosition = hit.point;
            }
            laserDistance = hit.distance;
            laserPosition = hit.point;
        }
        else if (laserActivated)
        {
            // The laser button is pressed, but not pointed at valid target
            // Set laser distance far away
            laserDistance = 1000;
        }

        // Do this on all nodes
        laser.enabled = laserActivated;
        if (laserActivated && drawLaser)
        {
            if (wandHit)
            {
                laserParticle.transform.position = laserPosition;
                laserParticle.Emit(1);
            }
            laser.SetPosition(1, new Vector3(0, 0, laserDistance));
        }
        else if (!drawLaser)
        {
            laser.SetPosition(1, new Vector3(0, 0, 0));
        }
        if (alwaysShowLaserParticle && !laserActivated)
        {
            laserParticle.transform.position = laserPosition;
            laserParticle.Emit(1);
        }
        GetComponent <SphereCollider>().enabled = true; // Enable sphere collider after raycast
    }
示例#22
0
 public static bool UsingHMDVR()
 {
     return(CAVE2Manager.UsingHMDVR());
 }
    // Use this for initialization
    new void Start()
    {
        CAVE2Manager.GetCAVE2Manager().GetComponent <CAVE2Manager>().AddPlayerController(gameObject);

        playerCollider = gameObject.GetComponent <CapsuleCollider> ();
    }
示例#24
0
 public static void SetHMDVREnabled(bool value)
 {
     CAVE2Manager.SetHMDVREnabled(value);
 }
示例#25
0
 // Use this for initialization
 void Start()
 {
     GetComponent <UnityEngine.UI.Text>().text += ": " + CAVE2Manager.GetMachineName();
 }
示例#26
0
 public static bool IsWandRegistered(int wandID, GameObject gameobject)
 {
     return(CAVE2Manager.GetCAVE2Manager().IsWandRegistered(wandID, gameobject));
 }
示例#27
0
 public static string CAVE2ToGetReal3DButton(CAVE2.Button name)
 {
     return(CAVE2Manager.CAVE2ToGetReal3DButton(name));
 }
示例#28
0
 public static GameObject GetWandObject(int ID)
 {
     return(CAVE2Manager.GetCAVE2Manager().GetWandObject(ID));
 }
示例#29
0
    // ---------------------------------------------------------------------------------------------


    // CAVE2 Cluster Management --------------------------------------------------------------------
    public static CAVE2Manager GetCAVE2Manager()
    {
        return(CAVE2Manager.GetCAVE2Manager());
    }
示例#30
0
 public static void ShowDebugCanvas(bool value)
 {
     CAVE2Manager.GetCAVE2Manager().showDebugCanvas = value;
 }
示例#31
0
 public static bool OnCAVE2Display()
 {
     return(CAVE2Manager.OnCAVE2Display());
 }
示例#32
0
    // ---------------------------------------------------------------------------------------------

    public static void AddCameraController(CAVE2CameraController cam)
    {
        CAVE2Manager.AddCameraController(cam);
    }
示例#33
0
    // ---------------------------------------------------------------------------------------------


    // CAVE2 Simulator Management ------------------------------------------------------------------
    public static bool IsSimulatorMode()
    {
        return(CAVE2Manager.IsSimulatorMode());
    }
示例#34
0
 public static Vector3 GetMocapPosition(int ID)
 {
     return(CAVE2Manager.GetMocapPosition(ID));
 }
示例#35
0
 public static void RegisterWandObject(int wandID, GameObject gameobject)
 {
     CAVE2Manager.GetCAVE2Manager().RegisterWandObject(wandID, gameobject);
 }
示例#36
0
 public static Quaternion GetMocapRotation(int ID)
 {
     return(CAVE2Manager.GetMocapRotation(ID));
 }
示例#37
0
 void OnWandButtonDown(CAVE2Manager.Button clickButton)
 {
     if( clickButton == dropButton )
         Drop();
 }
示例#38
0
    public static float GetAxis(int wandID, CAVE2Manager.Axis axis)
    {
        if( wandID == 1 )
        {
            return CAVE2Manager.wand1.GetAxis(axis);
        }
        else if( wandID == 2 )
        {
            return CAVE2Manager.wand2.GetAxis(axis);
        }

        return 0;
    }