Example #1
0
    static void ResetAttrCallback()
    {
        MRSystem mRSystem = GameObject.FindObjectOfType <MRSystem>();

        mRSystem.isAutoSlant = false;
        mRSystem.ViewerScale = 5;
    }
Example #2
0
        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);
            }
        }
Example #3
0
 void OnEnable()
 {
     if (!isAdjust)
     {
         StartCoroutine("CloseSelfDelay");
     }
     mrsys = FindObjectOfType <MRSystem>();
 }
Example #4
0
    private void Awake()
    {
        //Debug.LogError("AppDomain.CurrentDomain.BaseDirector:  "+ AppDomain.CurrentDomain.BaseDirectory);

        instance = this;

        MRSystem mrSys = FindObjectOfType <MRSystem>();

        mrSys.isAutoSlant = false;
        mrSys.ViewerScale = 5;
    }
Example #5
0
 /// <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);
     }
 }
Example #6
0
    /// <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);
            };
        }
    }