Esempio n. 1
0
 void OnPanoTextureReset(PanoTextureResetMsg msg)
 {
     if (_ModeDic.ContainsKey(_CurrentMode))
     {
         _ModeDic[_CurrentMode].ResetTexture();
     }
 }
    public void SetPanoMode(EPANOMODE showMode = EPANOMODE.OLD, EPANOTEXTUREMODE texmode = EPANOTEXTUREMODE.EMP_OLD, params PanoTextureForOneDevice[] texDeviceArr)
    {
        if (texDeviceArr.Length > 0)
        {
            mPanoTextureDeviceArr = texDeviceArr;
        }

        if (showMode != EPANOMODE.OLD)
        {
            _CurShowMode = showMode;
        }
        if (texmode != EPANOTEXTUREMODE.EMP_OLD)
        {
            _CurrentTextureMode = texmode;
        }


        ATrace.Log(string.Format("SetPanoMode: {0} : {1}", _CurShowMode, _CurrentTextureMode));

        foreach (KeyValuePair <EPANOMODE, PanoMeshBase> kv in mPanoMeshDic)
        {
            if (_CurShowMode == kv.Key)
            {
                kv.Value.gameObject.SetActive(true);
                if (mPanoTextureDeviceArr != null)
                {
                    kv.Value.SetMaterial(_CurrentTextureMode, mMediaSize, mContentSize, mPanoTextureDeviceArr);
                }
            }
            else
            {
                kv.Value.gameObject.SetActive(false);
            }
        }

        if (mPanoTextureDeviceArr != null && mPanoTextureDeviceArr.Length > 0)
        {
            PanoTextureForOneDevice dv = mPanoTextureDeviceArr[0];
            if (dv != null && dv._TextureArr.Length > 0)
            {
                Texture tex = dv._TextureArr[0];

                int width  = (int)(tex.width * mContentSize.x / mMediaSize.x);
                int height = (int)(tex.height * mContentSize.y / mMediaSize.y);

                SetPreRenderTextureSizeByShowMode(_CurShowMode, width, height);
            }
        }

        PanoTextureResetMsg msg = new PanoTextureResetMsg();

        PanoTextureResetMsg.Send <PanoTextureResetMsg>(msg);
    }