void Update() { RaycastHit hitInfo; if (Physics.Raycast(deviceRay.origin, deviceRay.direction, out hitInfo, Mathf.Infinity)) { if (hitInfo.collider.gameObject.GetComponent <grabObject>()) { activeBeamInterceptObj = hitInfo.collider.GetComponent <grabObject>(); beamDist = hitInfo.distance; } else { activeBeamInterceptObj = null; } } else { activeBeamInterceptObj = null; } currPosition = transform.position; currRightVec = transform.right; currUpVec = transform.up; currForwardVec = transform.forward; currRotation = transform.rotation; deviceRay.origin = currPosition; //Quaternion rayRotation = Quaternion.AngleAxis(currRayAngle, currRightVec); deviceRay.direction = currForwardVec; handleStateChanges(); }
void handleStateChanges() { bool stateIsValid = vrSystem.GetControllerState((uint)index, ref state, (uint)System.Runtime.InteropServices.Marshal.SizeOf(typeof(VRControllerState_t))); if (!stateIsValid) { Debug.Log("Invalid State for Idx: " + index); } if (stateIsValid && state.GetHashCode() != prevState.GetHashCode()) { if ((state.ulButtonPressed & SteamVR_Controller.ButtonMask.Trigger) != 0 && (prevState.ulButtonPressed & SteamVR_Controller.ButtonMask.Trigger) == 0) { if (activeBeamInterceptObj == null) { return; } activeBeamInterceptObj.grab(this); } else if ((state.ulButtonPressed & SteamVR_Controller.ButtonMask.Trigger) == 0 && (prevState.ulButtonPressed & SteamVR_Controller.ButtonMask.Trigger) != 0) { if (activeBeamInterceptObj == null) { return; } activeBeamInterceptObj.release(this); activeBeamInterceptObj = null; } prevState = state; } }
// Use this for initialization void Start() { my_self_grab = GetComponent <grabObject>(); mc = GetComponent <MeshCollider>(); }
// Use this for initialization void Start() { weatherSys = GameObject.Find("UniStormSystemEditor").GetComponent <UniStormWeatherSystem_C>(); m_grab = GetComponent <grabObject>(); }
void Start() { my_selfGrab = GetComponent <grabObject>(); }
// Use this for initialization private void Awake() { my_grab = GetComponent <grabObject>(); iniposition = transform.position; inirotation = transform.rotation; }