<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Infinity Code Forum — Smooth Zoom mode without scaling map object]]></title>
	<link rel="self" href="https://forum.infinity-code.com/extern.php?action=feed&amp;tid=367&amp;type=atom" />
	<updated>2017-01-09T13:18:36Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.infinity-code.com/viewtopic.php?id=367</id>
		<entry>
			<title type="html"><![CDATA[Re: Smooth Zoom mode without scaling map object]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=1644#p1644" />
			<content type="html"><![CDATA[<p>Hello.</p><p>Example of smooth zoom using FOV:<br /></p><div class="codebox"><pre><code>using UnityEngine;

public class SmoothZoomCameraFOV : MonoBehaviour
{
    private OnlineMaps map;
    private OnlineMapsTileSetControl control;

    private Camera activeCamera;

    private bool zoomStarted;
    private float lastGestureDistance;
    private float fov;
    private float minFOV;
    private float doubleFOV;

    private void Start()
    {
        map = OnlineMaps.instance;
        control = OnlineMapsTileSetControl.instance;
        activeCamera = control.activeCamera;

        control.allowZoom = false;
        fov = activeCamera.fieldOfView;
        minFOV = fov * 0.3f;
        doubleFOV = fov * 1.2f;
    }

    private void Update()
    {
        if (Input.touchCount == 2)
        {
            Vector2 p1 = Input.GetTouch(0).position;
            Vector2 p2 = Input.GetTouch(1).position;
            float distance = (p1 - p2).magnitude;

            if (!zoomStarted)
            {
                zoomStarted = true;
            }
            else
            {
                float scale = 1;

                if (Mathf.Abs(distance - lastGestureDistance) &gt; 2) scale = distance / lastGestureDistance;

                fov /= scale;
                if (fov &lt; minFOV)
                {
                    fov *= 2;
                    map.zoom++;
                }
                else if (fov &gt; doubleFOV)
                {
                    fov /= 2;
                    map.zoom--;
                }

                activeCamera.fieldOfView = fov;
            }

            lastGestureDistance = distance;
        }
        else
        {
            if (zoomStarted)
            {
                zoomStarted = false;
                lastGestureDistance = 0;
            }
        }
    }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alex Vertax]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=2</uri>
			</author>
			<updated>2017-01-09T13:18:36Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=1644#p1644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Smooth Zoom mode without scaling map object]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=1633#p1633" />
			<content type="html"><![CDATA[<p>Thank you for your reply.<br />Could you kindly show me the sample code to do this?</p>]]></content>
			<author>
				<name><![CDATA[hung_nguyen]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=310</uri>
			</author>
			<updated>2017-01-06T01:59:27Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=1633#p1633</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Smooth Zoom mode without scaling map object]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=1612#p1612" />
			<content type="html"><![CDATA[<p>Hello.</p><p>Online Maps does not have such built-in feature.<br />But you can implement this by using camera position, camera fov (perspective), or camera size (orthographic).</p>]]></content>
			<author>
				<name><![CDATA[Alex Vertax]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=2</uri>
			</author>
			<updated>2017-01-05T11:36:09Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=1612#p1612</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Smooth Zoom mode without scaling map object]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=1611#p1611" />
			<content type="html"><![CDATA[<p>Hello</p><p>Is there anyway to use smooth zoom mode (OnlineMapsTileSetControl) without scaling map object?<br />Thank you and best regards.</p>]]></content>
			<author>
				<name><![CDATA[hung_nguyen]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=310</uri>
			</author>
			<updated>2017-01-05T05:09:11Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=1611#p1611</id>
		</entry>
</feed>
