<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Infinity Code Forum — Youtube Zoom Example]]></title>
	<link rel="self" href="https://forum.infinity-code.com/extern.php?action=feed&amp;tid=598&amp;type=atom" />
	<updated>2017-07-17T12:23:22Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.infinity-code.com/viewtopic.php?id=598</id>
		<entry>
			<title type="html"><![CDATA[Re: Youtube Zoom Example]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=2608#p2608" />
			<content type="html"><![CDATA[<p>Thank you, Alex. That helped a Lot.</p>]]></content>
			<author>
				<name><![CDATA[harish.p.krishnamurthy]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=498</uri>
			</author>
			<updated>2017-07-17T12:23:22Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=2608#p2608</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Youtube Zoom Example]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=2599#p2599" />
			<content type="html"><![CDATA[<p>Hello.</p><p>Something like this:<br /><a href="https://www.dropbox.com/s/16f5ppjem64ern6/2017-07-13%20-%200001.mp4?dl=0">https://www.dropbox.com/s/16f5ppjem64er … 1.mp4?dl=0</a></p><p>Script:<br /></p><div class="codebox"><pre><code>using UnityEngine;

public class OppositeAnimZoom:MonoBehaviour
{
    public Transform cameraTransform;
    public float duration = 10;
    public AnimationCurve zoomCurve = AnimationCurve.Linear(0, 0, 1, 1);
    public AnimationCurve rotationCurve = AnimationCurve.Linear(0, 0, 1, 1);
    public int targetZoom = 3;

    private bool started;
    private int startZoom;
    private float time = 0;
    private Vector3 originalScale;
    private Transform mapTransform;
    private OnlineMaps map;
    private Vector3 originalPosition;
    private Vector3 smoothZoomOffset;

    private void OnGUI()
    {
        if (!started &amp;&amp; GUILayout.Button(&quot;Start&quot;))
        {
            startZoom = OnlineMaps.instance.zoom;
            started = true;
        }
    }

    private void Start()
    {
        map = OnlineMaps.instance;
        mapTransform = map.transform;
        originalPosition = mapTransform.localPosition;
        originalScale = mapTransform.localScale;

        Vector3 smoothZoomHitPoint = originalPosition + mapTransform.rotation * new Vector3(map.tilesetSize.x / -2 * originalScale.x, 0, map.tilesetSize.y / 2 * originalScale.z);
        smoothZoomOffset = Quaternion.Inverse(mapTransform.rotation) * (originalPosition - smoothZoomHitPoint);
        smoothZoomOffset.Scale(new Vector3(-1f / map.tilesetWidth, 0, -1f / map.tilesetHeight));
    }

    private void Update()
    {
        if (!started) return;

        time += Time.deltaTime / duration;
        if (time &gt;= 1)
        {
            started = false;
        }

        float _zoom = startZoom - zoomCurve.Evaluate(time) * (startZoom - targetZoom);
        Vector3 camAngles = cameraTransform.localRotation.eulerAngles;
        camAngles.y = 180 - rotationCurve.Evaluate(time) * 360;
        cameraTransform.localRotation = Quaternion.Euler(camAngles);

        float offset = _zoom - (int)_zoom + 1;
        Vector3 newScale = originalScale * offset;

        mapTransform.localScale = newScale;
        Vector3 s = newScale - originalScale;
        s.Scale(new Vector3(1f / originalScale.x, 1 / originalScale.y, 1 / originalScale.z));
        Vector3 p = mapTransform.rotation * new Vector3(map.tilesetWidth * s.x * smoothZoomOffset.x, 0, map.tilesetHeight * s.z * smoothZoomOffset.z);
        mapTransform.localPosition = originalPosition - p;
        map.zoom = (int) _zoom;
    }
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Alex Vertax]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=2</uri>
			</author>
			<updated>2017-07-13T14:01:10Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=2599#p2599</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Youtube Zoom Example]]></title>
			<link rel="alternate" href="https://forum.infinity-code.com/viewtopic.php?pid=2597#p2597" />
			<content type="html"><![CDATA[<p>Hi,</p><p>Can the following effect be achieved in the opposite direction in online-maps:</p><p><a href="https://www.youtube.com/watch?v=lzCEvlec5BE">https://www.youtube.com/watch?v=lzCEvlec5BE</a></p><p>preferably on click of a marker</p><p>Thanks,<br />Harish</p>]]></content>
			<author>
				<name><![CDATA[harish.p.krishnamurthy]]></name>
				<uri>https://forum.infinity-code.com/profile.php?id=498</uri>
			</author>
			<updated>2017-07-12T12:08:04Z</updated>
			<id>https://forum.infinity-code.com/viewtopic.php?pid=2597#p2597</id>
		</entry>
</feed>
