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; } }
public static bool IsMaster() { return(CAVE2Manager.IsMaster()); }
public static string CAVE2ToGetReal3DAxis(CAVE2.Axis name) { return(CAVE2Manager.CAVE2ToGetReal3DAxis(name)); }
public static CAVE2.Axis GetReal3DToCAVE2Axis(string name) { return(CAVE2Manager.GetReal3DToCAVE2Axis(name)); }
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); } }
// --------------------------------------------------------------------------------------------- // CAVE2 Input Management ---------------------------------------------------------------------- public static bool UsingOmicronServer() { return(CAVE2Manager.UsingOmicronServer()); }
public static bool IsHeadRegistered(int headID, GameObject gameobject) { return(CAVE2Manager.GetCAVE2Manager().IsHeadRegistered(headID, gameobject)); }
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); }
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>(); }
public WandEvent(int ID, CAVE2Manager.Button button) { wandID = ID; this.button = button; }
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; }
public static bool UsingGetReal3D() { return(CAVE2Manager.UsingGetReal3D()); }
public static bool GetButtonUp(int wandID, CAVE2.Button button) { return(CAVE2Manager.GetButtonUp(wandID, button)); }
public static void RegisterHeadObject(int headID, GameObject gameobject) { CAVE2Manager.GetCAVE2Manager().RegisterHeadObject(headID, gameobject); }
public static OmicronController.ButtonState GetButtonState(int wandID, CAVE2.Button button) { return(CAVE2Manager.GetButtonState(wandID, button)); }
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; }
public static CAVE2.Button GetReal3DToCAVE2Button(string name) { return(CAVE2Manager.GetReal3DToCAVE2Button(name)); }
// 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 }
public static bool UsingHMDVR() { return(CAVE2Manager.UsingHMDVR()); }
// Use this for initialization new void Start() { CAVE2Manager.GetCAVE2Manager().GetComponent <CAVE2Manager>().AddPlayerController(gameObject); playerCollider = gameObject.GetComponent <CapsuleCollider> (); }
public static void SetHMDVREnabled(bool value) { CAVE2Manager.SetHMDVREnabled(value); }
// Use this for initialization void Start() { GetComponent <UnityEngine.UI.Text>().text += ": " + CAVE2Manager.GetMachineName(); }
public static bool IsWandRegistered(int wandID, GameObject gameobject) { return(CAVE2Manager.GetCAVE2Manager().IsWandRegistered(wandID, gameobject)); }
public static string CAVE2ToGetReal3DButton(CAVE2.Button name) { return(CAVE2Manager.CAVE2ToGetReal3DButton(name)); }
public static GameObject GetWandObject(int ID) { return(CAVE2Manager.GetCAVE2Manager().GetWandObject(ID)); }
// --------------------------------------------------------------------------------------------- // CAVE2 Cluster Management -------------------------------------------------------------------- public static CAVE2Manager GetCAVE2Manager() { return(CAVE2Manager.GetCAVE2Manager()); }
public static void ShowDebugCanvas(bool value) { CAVE2Manager.GetCAVE2Manager().showDebugCanvas = value; }
public static bool OnCAVE2Display() { return(CAVE2Manager.OnCAVE2Display()); }
// --------------------------------------------------------------------------------------------- public static void AddCameraController(CAVE2CameraController cam) { CAVE2Manager.AddCameraController(cam); }
// --------------------------------------------------------------------------------------------- // CAVE2 Simulator Management ------------------------------------------------------------------ public static bool IsSimulatorMode() { return(CAVE2Manager.IsSimulatorMode()); }
public static Vector3 GetMocapPosition(int ID) { return(CAVE2Manager.GetMocapPosition(ID)); }
public static void RegisterWandObject(int wandID, GameObject gameobject) { CAVE2Manager.GetCAVE2Manager().RegisterWandObject(wandID, gameobject); }
public static Quaternion GetMocapRotation(int ID) { return(CAVE2Manager.GetMocapRotation(ID)); }
void OnWandButtonDown(CAVE2Manager.Button clickButton) { if( clickButton == dropButton ) Drop(); }
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; }