Пример #1
0
    public void CameraTransitionStart(PIPanoView.EPANOMESHMODE emode)
    {
        bool ret = false;

        //先判参数是否合法
        foreach (KeyValuePair <PIPanoView.EPANOMESHMODE, PanoModeBase> kv in PIPanoView.Instance._ModeDic)
        {
            if (kv.Key == emode)
            {
                ret = true;
                break;
            }
        }

        if (!ret)
        {
            Debug.LogError("EPANOMESHMODE invalid: " + emode);
            StartCoroutine(CmaeraTransitionEnd(emode));
            return;
        }

        ret = SetTransitionCameras(emode);
        if (!ret)
        {
            StartCoroutine(CmaeraTransitionEnd(emode));
        }
        else
        {
            _NextMode = emode;
            StartCoroutine(ExecuteTransition());
        }
    }
Пример #2
0
    //根据当前模式和下一个模式,设置过渡动画相机
    public bool SetTransitionCameras(PIPanoView.EPANOMESHMODE emode)
    {
        Camera cameraA = null;
        Camera cameraB = null;

        if (emode == PIPanoView.Instance._CurrentMode)
        {
            return(false);
        }

        //只对一个相机的模式做处理
        foreach (KeyValuePair <PIPanoView.EPANOMESHMODE, Camera[]> kv in _CameraDic)
        {
            if (kv.Key == PIPanoView.Instance._CurrentMode)
            {
                if (kv.Value.Length == 1)
                {
                    cameraA = kv.Value[0];
                }
                else
                {
                    //CameraTransitionManager.Instance.mCameraA.targetTexture = PanoManager.Instance.mPreRenderTexture;//PanoManager.Instance.mCameraPreRender.targetTexture;
                    //cameraA = CameraTransitionManager.Instance.mCameraA;

                    //cameraA = PanoManager.Instance.mCameraPreRender;
                }
            }

            if (kv.Key == emode)
            {
                if (kv.Value.Length == 1)
                {
                    cameraB = kv.Value[0];
                }
            }
        }

        //Debug.LogError("cameraA: " + cameraA);
        //Debug.LogError("cameraB: " + cameraB);

        if (cameraA == null || cameraB == null)
        {
            return(false);
        }
        else
        {
            //设置目标相机的显示
            foreach (KeyValuePair <PIPanoView.EPANOMESHMODE, PanoModeBase> kv in PIPanoView.Instance._ModeDic)
            {
                if (kv.Key == emode)
                {
                    kv.Value.gameObject.SetActive(true);
                }
            }

            assistant.cameraA = cameraA;
            assistant.cameraB = cameraB;
            return(true);
        }
    }
Пример #3
0
    public IEnumerator CmaeraTransitionEnd(PIPanoView.EPANOMESHMODE emode)
    {
        if (emode == PIPanoView.EPANOMESHMODE.EMP_MAX)
        {
            emode = _NextMode;
        }
        PIPanoView.Instance.EnablePanoMode(emode);

        assistant.cameraA = null;
        assistant.cameraB = null;

        yield return(null);
    }