static void ResetAttrCallback() { MRSystem mRSystem = GameObject.FindObjectOfType <MRSystem>(); mRSystem.isAutoSlant = false; mRSystem.ViewerScale = 5; }
public void ResetCameraProjMat() { //不在设置坐标(但是要保证相机垂直看向零平面) //transform.position = FCore.glassPosition; if (mrsys == null) { mrsys = FindObjectOfType <MRSystem>(); } if (null != mrsys) { transform.rotation = mrsys.transform.rotation * Quaternion.Euler(FCore.slantAngle, 0, 0);//让相机和屏幕平面垂直 //设置瞳距为6.6cm,实时修改这样响应实时修改变化 //cam_l.transform.localPosition = new Vector3(-FCore.PupilDistance / 2.0f, 0, 0) * FCore.ViewerScale; //cam_r.transform.localPosition = new Vector3(FCore.PupilDistance / 2.0f, 0, 0) * FCore.ViewerScale; //cam_l.transform.position = FCore.eyeLeftPosition; //cam_r.transform.position = FCore.eyeRightPosition; //cam_l.transform.rotation = FCore.anchorRQuat * Quaternion.Euler(FCore.slantAngle, 0, 0); //cam_r.transform.rotation = FCore.anchorRQuat * Quaternion.Euler(FCore.slantAngle, 0, 0); setCameraProjMat(cam_l, FCore.eyeLeftPosition); setCameraProjMat(cam_c, FCore.glassPosition); setCameraProjMat(cam_r, FCore.eyeRightPosition); } }
void OnEnable() { if (!isAdjust) { StartCoroutine("CloseSelfDelay"); } mrsys = FindObjectOfType <MRSystem>(); }
private void Awake() { //Debug.LogError("AppDomain.CurrentDomain.BaseDirector: "+ AppDomain.CurrentDomain.BaseDirectory); instance = this; MRSystem mrSys = FindObjectOfType <MRSystem>(); mrSys.isAutoSlant = false; mrSys.ViewerScale = 5; }
/// <summary> /// 设置主相机投影矩阵 /// </summary> public virtual void ResetCameraProjMat() { originalProjection = mainCamera.projectionMatrix; if (mrSystem == null) { mrSystem = FindObjectOfType <MRSystem>(); } if (null != mrSystem) { transform.rotation = mrSystem.transform.rotation * Quaternion.Euler(FCore.slantAngle, 0, 0);//让相机和屏幕平面垂直 setCameraProjMat(mainCamera, FCore.glassPosition); } }
/// <summary> /// 相机dotween位移 /// </summary> /// <typeparam name="T">回调函数参数类型</typeparam> /// <param name="tarPos">tween目标位置</param> /// <param name="delayTime">tween时间</param> /// <param name="para">tween完成回调函数参数</param> /// <param name="Complete">tween完成回调函数</param> public static void DoTweenCamera <T>(Vector3 tarPos, float delayTime, T para, System.Action <T> Complete) { if (Monitor23DMode.instance.is3D)//3d相机推进 { Camera3D camera3D = GetScenesObj("Camera3D").GetComponent <Camera3D>(); camera3D.enabled = false; camera3D.transform.DOLocalMove(tarPos, delayTime).onComplete = () => { Complete?.Invoke(para); camera3D.enabled = true; }; } else//2d相近推进 { MRSystem mrSys = GetScenesObj("MRSystem").GetComponent <MRSystem>(); mrSys.transform.DOLocalMove(tarPos, delayTime).onComplete = () => { Complete?.Invoke(para); }; } }