Exemplo n.º 1
0
    private void ResizeMap()
    {
        screenWidth  = Screen.width;
        screenHeight = Screen.height;

        int width  = screenWidth / 256 * 256;
        int height = screenHeight / 256 * 256;

        if (halfSize)
        {
            width  = width / 512 * 256;
            height = height / 512 * 256;
        }

        if (screenWidth % 256 != 0)
        {
            width += 256;
        }
        if (screenHeight % 256 != 0)
        {
            height += 256;
        }

        if (useMaxSide)
        {
            width = height = Mathf.Max(width, height);
        }

        int viewWidth  = width;
        int viewHeight = height;

        if (halfSize)
        {
            viewWidth  *= 2;
            viewHeight *= 2;
        }

        if (control.resultIsTexture)
        {
            OnlineMapsUtils.Destroy(control.activeTexture);
            if (control is OnlineMapsUIImageControl)
            {
                OnlineMapsUtils.Destroy(GetComponent <Image>().sprite);
            }
            else if (control is OnlineMapsSpriteRendererControl)
            {
                OnlineMapsUtils.Destroy(GetComponent <SpriteRenderer>().sprite);
            }

            Texture2D texture = new Texture2D(width, height, TextureFormat.RGB24, false);
            map.SetTexture(texture);

            if (control is OnlineMapsUIRawImageControl)
            {
                RectTransform rt = transform as RectTransform;
                rt.sizeDelta = new Vector2(viewWidth, viewHeight);
            }
            else if (control is OnlineMapsUIImageControl)
            {
                RectTransform rt = transform as RectTransform;
                rt.sizeDelta = new Vector2(viewWidth, viewHeight);
            }
            else if (control is OnlineMapsSpriteRendererControl)
            {
                GetComponent <BoxCollider>().size = new Vector3(viewWidth / 100f, viewHeight / 100f, 0.2f);
            }

            map.RedrawImmediately();
        }
        else if (control is OnlineMapsTileSetControl)
        {
            OnlineMapsTileSetControl ts = control as OnlineMapsTileSetControl;

            ts.Resize(width, height, viewWidth, viewHeight);
            if (ts.activeCamera.orthographic)
            {
                ts.activeCamera.orthographicSize = screenHeight / 2f;
            }
            else if (cameraOrbit != null)
            {
                cameraOrbit.distance = screenHeight * 0.8f;
            }
        }
    }