<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Infinity Code Forum — Tips & Tricks]]></title>
		<link>https://forum.infinity-code.com/index.php</link>
		<atom:link href="https://forum.infinity-code.com/extern.php?action=feed&amp;fid=57&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent topics at Infinity Code Forum.]]></description>
		<lastBuildDate>Wed, 10 Mar 2021 10:48:37 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Synchronization Panoramas]]></title>
			<link>https://forum.infinity-code.com/viewtopic.php?id=1714&amp;action=new</link>
			<description><![CDATA[<p>In some cases, you may need to achieve that Pan, Tilt and FOV of several panoramas changed synchronously.<br />Using this script you can do this:<br /></p><div class="codebox"><pre><code>using InfinityCode.uPano;
using UnityEngine;

public class SyncPanoViews : MonoBehaviour
{
    public Pano[] panoramas;
    private bool ignoreEvents;

    private void Start()
    {
        foreach (Pano pano in panoramas)
        {
            pano.OnPanChanged += OnPanChanged;
            pano.OnTiltChanged += OnTiltChanged;
            pano.OnFOVChanged += OnFovChanged;
        }
    }

    private void OnFovChanged(float fov)
    {
        if (ignoreEvents) return;

        ignoreEvents = true;
        foreach (Pano pano in panoramas) pano.fov = fov;
        ignoreEvents = false;
    }

    private void OnTiltChanged(float tilt)
    {
        if (ignoreEvents) return;

        ignoreEvents = true;
        foreach (Pano pano in panoramas) pano.tilt = tilt;
        ignoreEvents = false;
    }

    private void OnPanChanged(float pan)
    {
        if (ignoreEvents) return;

        ignoreEvents = true;
        foreach (Pano pano in panoramas) pano.pan = pan;
        ignoreEvents = false;
    }
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alex Vertax)]]></author>
			<pubDate>Wed, 10 Mar 2021 10:48:37 +0000</pubDate>
			<guid>https://forum.infinity-code.com/viewtopic.php?id=1714&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Directional Warping]]></title>
			<link>https://forum.infinity-code.com/viewtopic.php?id=1551&amp;action=new</link>
			<description><![CDATA[<p><div class="fancy_video_tag_player"><iframe class="youtube-player" type="text/html" width="640" height="385" src="https://www.youtube.com/embed/7EC_sM3gmak" frameborder="0"></iframe></div></p><p>Tutorial of how to make a directional warping transition using uPano.</p><p>Scripts and shaders in the package.</p>]]></description>
			<author><![CDATA[null@example.com (Alex Vertax)]]></author>
			<pubDate>Wed, 24 Jun 2020 10:17:02 +0000</pubDate>
			<guid>https://forum.infinity-code.com/viewtopic.php?id=1551&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[uPano + Huge Texture = High Quality Boost]]></title>
			<link>https://forum.infinity-code.com/viewtopic.php?id=1476&amp;action=new</link>
			<description><![CDATA[<p><div class="fancy_video_tag_player"><iframe class="youtube-player" type="text/html" width="640" height="385" src="https://www.youtube.com/embed/O1zBsyC1xLE" frameborder="0"></iframe></div></p><p>Huge Texture:<br /><a href="https://infinity-code.com/assets/huge-texture">https://infinity-code.com/assets/huge-texture</a><br /><a href="https://assetstore.unity.com/packages/tools/input-management/huge-texture-163576">https://assetstore.unity.com/packages/t … ure-163576</a></p>]]></description>
			<author><![CDATA[null@example.com (Alex Vertax)]]></author>
			<pubDate>Mon, 23 Mar 2020 23:15:48 +0000</pubDate>
			<guid>https://forum.infinity-code.com/viewtopic.php?id=1476&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Positioning Hot Spots by location]]></title>
			<link>https://forum.infinity-code.com/viewtopic.php?id=1451&amp;action=new</link>
			<description><![CDATA[<p><span class="postimg"><img src="https://infinity-code.com/sites/default/files/styles/full_post/public/images/news/2020.02.17%20-%20uPano%20-%20Positioning%20Hot%20Spots%20by%20location.jpg?itok=Dri36EyM" alt="Positioning Hot Spots by location" /></span></p><p>When you have locations where the current and target panoramas are located, using uPano API you can convert the location to pan and tilt.</p><p>Example:<br /></p><div class="codebox"><pre><code>using System;
using InfinityCode.uPano;
using InfinityCode.uPano.HotSpots;
using UnityEngine;

public class CreateHotSpotByLocation : MonoBehaviour
{
    public double panoLongitude;
    public double panoLatitude;
    public float panoAltitude;

    public double hotSpotLongitude;
    public double hotSpotLatitude;
    public float hotSpotAltitude;

    public GameObject hotSpotPrefab;
    private HotSpot hotSpot;

    private void Start()
    {
        HotSpotManager hotSpotManager = GetComponent&lt;HotSpotManager&gt;();
        hotSpot = hotSpotManager.Create(0, 0, hotSpotPrefab);
        UpdatePosition(hotSpot, hotSpotLongitude, hotSpotLatitude, hotSpotAltitude);
    }

    private void UpdatePosition(HotSpot hotSpot, double longitude, double latitude, float altitude)
    {
        double tx1, tx2, ty1, ty2;
        GeoHelper.CoordinatesToTile(panoLongitude, panoLatitude, 20, out tx1, out ty1);
        GeoHelper.CoordinatesToTile(longitude, latitude, 20, out tx2, out ty2);

        double distance = GeoHelper.Distance(panoLongitude, panoLatitude, longitude, latitude) * 1000;

        float pan = 90 + (float) MathHelper.Angle2D(tx1, ty1, tx2, ty2);
        float tilt = 0;

        float offset = altitude - panoAltitude;
        if (Math.Abs(offset) &gt; float.Epsilon)
        {
            tilt = (float)Math.Atan2(offset, distance) * Mathf.Rad2Deg;
        }

        hotSpot.SetPanTilt(pan, tilt);
    }
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Alex Vertax)]]></author>
			<pubDate>Mon, 17 Feb 2020 09:45:29 +0000</pubDate>
			<guid>https://forum.infinity-code.com/viewtopic.php?id=1451&amp;action=new</guid>
		</item>
	</channel>
</rss>
