Example #1
0
 protected void OnMapDataReceived(MapTaskInfo info)
 {
     if (status == EChunkStatus.EWaitMapData)
     {
         status = EChunkStatus.ELive;
     }
     isWaitMapData = false;
     mapData       = info.mapData;
     NotifyStatusChanged();
 }
    protected override void DealMapRequest(MapTaskInfo info)
    {
        mat.SetFloat("_MaxTerrianH", MaxMapH);
        mat.SetFloat("_PosScale", MapXZScale);
        mat.SetFloat("_Eps", MapEps);
        mat.SetVector("_WidHigh", new Vector4(WidInShader, WidInShader, 0, 0));
        mat.SetVector("_Offset", info.offset);

        Graphics.Blit(null, rt, mat, 0);
        RenderTexture prev = RenderTexture.active;

        RenderTexture.active = rt;
        mapTex.ReadPixels(new Rect(0, 0, rt.width, rt.height), 0, 0);
        RenderTexture.active = prev;
        //rt.DiscardContents();//TODO Test
        info.mapData = new MapData(mapTex.GetPixels());
        if (info.callBack != null)
        {
            info.callBack(info);
        }
    }
 protected virtual void DealMapRequest(MapTaskInfo info)
 {
 }