protected static float DrawSlider(string label, string key, float value, float min, float max) { value = PlayerPrefsEx.GetFloat(key, value); float newValue = EditorGUILayout.Slider(label, value, min, max); if (newValue != value) { PlayerPrefsEx.SetFloat(key, newValue); } return(newValue); }
public virtual void LoadHandConfigs() { int i = 0; // m_HandPosition[i] = PlayerPrefsEx.GetVector3("Daydream.leftHand.position", new Vector3(-0.2f, -0.5f, 0.0f)); m_HandLength[i] = PlayerPrefsEx.GetFloat("Daydream.leftHand.length", 0.0f); ++i; m_HandPosition[i] = PlayerPrefsEx.GetVector3("Daydream.rightHand.position", new Vector3(0.2f, -0.5f, 0.0f)); m_HandLength[i] = PlayerPrefsEx.GetFloat("Daydream.rightHand.length", 0.0f); ++i; }
protected virtual void Start() { m_Transform = transform; // m_TrackerHandle = -1; if (showOnTrackingLost) { XDevicePlugin.Init(); m_TrackerHandle = XDevicePlugin.GetInputDeviceHandle(trackerName); if (m_TrackerHandle < 0) { showOnTrackingLost = false; } } // m_ReadyForModel = (controlPoints.Length == 8); // Cache values. m_CosFovX = Mathf.Cos(Mathf.Deg2Rad * fovX * .5f); m_CosFovY = Mathf.Cos(Mathf.Deg2Rad * fovY * .5f); m_SqrNearZ = nearZ * nearZ; m_SqrFarZ = farZ * farZ; m_SqrOrthographicSize = orthographicSize * .5f; m_SqrOrthographicSize = Vector2.Scale(m_SqrOrthographicSize, m_SqrOrthographicSize); // if (m_Corners != null && m_Corners.Length != 0) { m_CachedCorners = m_Corners; } m_Corners = null; // m_GroundAlpha = PlayerPrefsEx.GetInt("PlayArea.drawGround", 1); m_WallAlpha = PlayerPrefsEx.GetInt("PlayArea.drawWall", 1); autoCreatePlayArea = PlayerPrefsEx.GetBool("PlayArea.enabled", autoCreatePlayArea); showCameraModel = PlayerPrefsEx.GetBool("PlayArea.showCameraModel", showCameraModel); if (m_cameraModel != null) { m_cameraModel.SetActive(showCameraModel); } warningDistance = PlayerPrefsEx.GetFloat("PlayArea.warningDistance", 0.5f); // if (autoCreatePlayArea) { Transform t = null; if (m_PlayArea == null) { // m_PlayArea = new GameObject("_PlayArea", typeof(PlayAreaRenderer)).GetComponent <PlayAreaRenderer>(); m_PlayArea.handedness = -1; m_PlayArea.groundColor = PlayerPrefsEx.GetColor("PlayArea.groundColor", Color.cyan); m_PlayArea.groundMaterial = new Material(Shader.Find("Sprites/Default")); m_PlayArea.borderThickness = PlayerPrefsEx.GetFloat("PlayArea.borderThickness", .15f); m_PlayArea.wallColor = PlayerPrefsEx.GetColor("PlayArea.wallColor", Color.cyan); m_PlayArea.wallMaterial = new Material(Shader.Find("Sprites/Default")); m_PlayArea.thickness = PlayerPrefsEx.GetFloat("PlayArea.thickness", 0.0075f); m_PlayArea.height = PlayerPrefsEx.GetFloat("PlayArea.height", 2.5f); m_PlayArea.cellSize = PlayerPrefsEx.GetFloat("PlayArea.cellSize", 0.25f); m_PlayArea.emptySize = PlayerPrefsEx.GetFloat("PlayArea.emptySize", 0.05f); } t = m_PlayArea.transform; t.SetParent(VRContext.GetAnchor(VRNode.TrackingSpace)); t.localPosition = (VRContext.trackingOrigin == TrackingOrigin.FloorLevel) ? Vector3.zero : new Vector3(0f, -XDevicePlugin.GetFloat(m_TrackerHandle, XDevicePlugin.kField_TrackerHeight, 0f), 0f); t.localRotation = Quaternion.identity; t.localScale = Vector3.one; } // UpdateModel(); }
protected virtual void Start() { m_Transform = transform; // m_TrackerHandle = -1; if (showOnTrackingLost) { XDevicePlugin.Init(); m_TrackerHandle = XDevicePlugin.GetInputDeviceHandle(trackerName); if (m_TrackerHandle < 0) { showOnTrackingLost = false; } } // m_ReadyForModel = (controlPoints.Length == 8); // Cache values. /* * m_CosFovX=Mathf.Cos(Mathf.Deg2Rad*fovX*.5f); * m_CosFovY=Mathf.Cos(Mathf.Deg2Rad*fovY*.5f); * m_SqrNearZ=nearZ*nearZ; * m_SqrFarZ=farZ*farZ; * * m_SqrOrthographicSize=orthographicSize*.5f; * m_SqrOrthographicSize=Vector2.Scale(m_SqrOrthographicSize,m_SqrOrthographicSize); */ // if (m_Corners != null && m_Corners.Length != 0) { m_CachedCorners = m_Corners; } m_Corners = null; // m_GroundAlpha = PlayerPrefsEx.GetInt("PlayArea.drawGround", 1); m_WallAlpha = PlayerPrefsEx.GetInt("PlayArea.drawWall", 1); m_PlaneAlpha = PlayerPrefsEx.GetInt("PlayArea.drawPlane", 1); autoCreatePlayArea = PlayerPrefsEx.GetBool("PlayArea.enabled", autoCreatePlayArea); showCameraModel = PlayerPrefsEx.GetBool("PlayArea.showCameraModel", showCameraModel); if (m_cameraModel != null) { m_cameraModel.SetActive(showCameraModel); } warningDistance = PlayerPrefsEx.GetFloat("PlayArea.warningDistance", 0.5f); // if (autoCreatePlayArea) { Transform t = null; Transform trackingSpaceAnchor = VRContext.GetAnchor(VRNode.TrackingSpace); if (m_PlayArea == null) { if (trackingSpaceAnchor != null) { m_PlayArea = trackingSpaceAnchor.GetComponentInChildren <PlayAreaRenderer>(); } if (m_PlayArea == null) { GameObject go = PlayerPrefsEx.GetObject("PlayAreaRenderer") as GameObject; m_PlayArea = Instantiate(go).GetComponent <PlayAreaRenderer>(); m_PlayArea.name = go.name; } } m_PlayArea.handedness = -1; // t = m_PlayArea.transform; t.SetParent(trackingSpaceAnchor); t.localPosition = (VRContext.trackingOrigin == TrackingOrigin.FloorLevel) ? Vector3.zero : new Vector3(0f, -XDevicePlugin.GetFloat(m_TrackerHandle, XDevicePlugin.kField_TrackerHeightFloat, 0f), 0f); t.localRotation = Quaternion.identity; t.localScale = Vector3.one; } // UpdateModel(); }
/// <summary> /// We will lose the VR context,when reloading level. /// Calling this function per frame can ensure that the anchor is alive. /// </summary> public virtual bool EnsureAnchor() { // <!-- TODO: VR Legacy Mode. --> // If the X-Hawk isn't connected,the game will run as legacy VR mode(Gets input events with GearVR touchpad). if (XDevicePlugin.GetInt(m_Handle, XDevicePlugin.kField_ConnectionState, 0) != (int)DeviceConnectionState.Connected) { XDevicePlugin.SetInt(m_HmdHandle, XDevicePlugin.kField_ConnectionState, (int)DeviceConnectionState.Disconnected); return(false); } // if (trackingSpace == null) { trackingSpace = VRContext.GetAnchor(VRNode.TrackingSpace); } // if (anchor == null) { Transform centerEyeAnchor = VRContext.GetAnchor(VRNode.CenterEye); if (m_IsRequestVR && centerEyeAnchor == null) { return(false); } else { // switch ((XDevicePlugin.GetInt(-1, XDevicePlugin.kField_CtxDeviceVersion, 0x4000) & 0xF000)) { case 0x3000: anchor = new GameObject("XHawkAnchor").transform; anchor.SetParent(centerEyeAnchor); anchor.localPosition = anchorPosition; anchor.localRotation = Quaternion.Euler(anchorRotation); // m_UseAnchorProjection = !PlayerPrefsEx.GetBool("XimmerseTracker[Inside-out].fixShake", false); //!modifyHierarchy; VRContext.SetAnchor(VRNode.TrackerDefault, anchor); // TODO : /*if(modifyHierarchy) { * for(int i=0;i<2;++i) { * Transform hand=VRContext.GetAnchor(VRNode.LeftHand+i); * if(hand!=null) { * hand.SetParent(anchor,true); * } * } * }*/ if (PlayerPrefsEx.GetBool("XimmerseTracker[Inside-out].fixShake", false)) { m_AnchorMatrixQueue = new List <Matrix4x4>(8); m_M2pFrameIndex = Mathf.CeilToInt(PlayerPrefsEx.GetFloat("XimmerseTracker[Inside-out].m2pLatency", 0.0f) * VRContext.refreshRate); Log.i("XHawkInput", "m_M2pFrameIndex=" + m_M2pFrameIndex); } else { m_AnchorMatrixQueue = null; } break; case 0x4000: // float trackerHeight, trackerDepth, trackerPitch; XDevicePlugin.GetTrackerPose(m_Handle, out trackerHeight, out trackerDepth, out trackerPitch); // anchor = (anchorPrefab == null || !m_IsRequestVR? // in 2D mode. new GameObject(): Object.Instantiate(anchorPrefab) ).transform; anchor.name = "TrackerAnchor(X-Hawk DK4)"; anchor.SetParent(trackingSpace); // #if XDEVICE_RELEASE if (true) { UpdateAnchorFromPlugin(); } else #endif { anchor.localPosition = new Vector3(0f, VRContext.trackingOrigin == TrackingOrigin.FloorLevel?trackerHeight:0.0f, trackerDepth); anchor.localRotation = Quaternion.Euler(-trackerPitch, 180f, 0f); } // m_TrackerFrustum = anchor.GetComponentInChildren <TrackerFrustum>(); // //#if XDEVICE_RELEASE // m_UseAnchorProjection=false; //#else m_UseAnchorProjection = true; //#endif VRContext.SetAnchor(VRNode.TrackerDefault, anchor); m_AnchorMatrixQueue = null; break; default: anchor = new GameObject("Dummy Anchor").transform; anchor.SetParent(trackingSpace, false); break; } // Override anchor info. if (m_AnchorInfoCached) { anchor.localPosition = m_AnchorPosition; anchor.localRotation = m_AnchorRotation; } // if (m_IsRequestVR) { VRContext.main.onRecenter -= RecenterOnVRContextRecenter; VRContext.main.onRecenter += RecenterOnVRContextRecenter; } } } return(true); }