uPano

Documentation for uPano v3.1

Overview

Thanks for using uPano! Don't forget to leave a review on the store page if you liked it, this helps us a lot! https://assetstore.unity.com/packages/tools/integration/upano-126396

Introduction

uPano (Unity Panoramic Framework) is a universal solution for displaying dynamic and static panoramas, and creating virtual tours.

Most of the existing types of panoramas are supported: spherical, cylindrical, cubic panoramas on single or six images, cubemap.

uPano is very easy to learn and use, and is great for people who do not have programming experience. In most usage scenarios, you can make interactive panoramas without creating your own scripts (for more details, see Interactive Element / Events section).

If you have some very specific purpose, uPano has a powerful and easy-to-use API that will allow you to implement any behavior.

Platforms: Standalone, iOS, Android, Universal Windows Platform, WebGL. Other platforms have not been tested, but most likely uPano will work well.

Quick tour creation

uPano - Tour Maker

Select Window / Infinity Code / uPano / Tour Maker.

Click «Create a new tour». This will create a new empty tour with default settings.

If you are making a tour for Google VR, select Hierarchy / uPano Tour / Tour (Script) / Preset - Google VR. This will remove the keyboard and mouse controls, add Timed Gaze plugin, and apply the required settings for VR.

Drag and drop panorama textures from Project to Tour Maker.

A separate panorama will be created for each texture.

Right-click on the panorama with which you want to start the tour, and select Set Start Panorama in the context menu. The start panorama will be highlighted in green.

To create an interactive element for switching between panoramas, right-click on the panorama from which you want to switch, drag to the target panorama, and release the right mouse button.

This will open Visual Element Editor in connection mode.

Right-click in the place where you want to create an interactive element, and select the element type (HotArea, HotSpot or Direction).

In Tour Maker, outgoing transitions from the selected panorama will be highlighted in blue.

Quickly create a panorama (wizard)

uPano - Wizard

Select Hierarchy / Create / 3D Object / Panorama or Window / Infinity Code / uPano / Wizard to open the panorama wizard.

Select the type of panorama, specify the texture, enable the controls and plugins you need, and click «Create».

uPano will create a fully-ready panorama. Just start the scene, and enjoy the result.

Structure

uPano consists of:

Using controls and plugins is optional. You can use them in any combination, or not use at all.

Viewing parameters

To position any point on the panorama, two values are used:

Pan - the horizontal angle of rotation of the camera is 0-360 degrees clockwise, where 0 is north, 90 is east, 180 is south, 270 is west.

Tilt - deviation angle «up» and «down» from the horizon. The range is from -90 to 90 degrees, where 0 is horizontal, 90 is up, and -90 is down.

The point on the panorama that the camera is looking at is called Point of View (POV).

Important: changing the tilt in a cylindrical panorama moves the camera up / down instead of rotating.

The camera has two additional parameters: Fov - the vertical field of view of the camera in degrees. North Pan - the horizontal angle of rotation of the camera is 0-360 degrees clockwise to the true north.

Cameras

uPano requires a camera to properly display and interact with the panorama. To interact with interactive elements, the camera must have a Physics Raycaster component.

By default, uPano creates a new camera to display the panorama. But if you need, you can specify an existing camera. For example, this is very useful when creating a VR application.

To work with multiple cameras, use Multi Camera component.

To work with cameras that have an orthographic projection, use Orthograpthic Cameras component.

Orientation of a panorama

uPano supports panorama orientation in three modes:

  1. Rotate Camera (by default) - when changing pan and tilt, the camera that displays the panorama will be rotated. In most cases, it is recommended to use this mode.
  2. Rotate Panorama - when changing pan and tilt, the GameObject of the panorama will be rotated.
  3. Rotate GameObject - when changing pan and tilt, the specified GameObject will be rotated. This is useful for VR applications when you want to rotate multiple cameras simultaneously.

Important: For the camera created by uPano, only Rotate Camera mode is available. If you want to change the orientation mode, specify an existing camera.

Huge Textures

If you want to use textures with a huge resolution (over 8k), then you can do it using Huge Texture asset. https://assetstore.unity.com/packages/tools/input-management/huge-texture-163576

This will give you a big boost in the quality of the displayed panorama. Read more about how this works in the Huge Texture documentation.

UV

For all types of panoramas, except for a cubic panorama on six images and a cubemap, you can adjust UV of the panorama. For a cubic panorama on single image, you can rotate the side texture to 90, 180 or 270 degrees.

Proper adjustment of UV is very important for a cubic panorama on single image. Even a small error can give a visible seam on the faces of the cube, so be careful when setting up UV.

In most cases, UV for the other types of panoramas do not need to be adjusted. But still it can be useful for solving specific problems. For example, to clip an empty area at the bottom of an image downloaded from Google Street View by third-party ways.

Texture Compression

When you use a texture that you have in a project, the compression and format of the textures depends on your texture import settings.

When you download a texture using Downloader, Google Street View, or set Texture2D using uPano API, the texture compression depends on Pano Renderer / Compress Texture field.

If texture compression is enabled, the texture will be automatically compressed to DXT1 or DXT5 format, which greatly reduces memory usage.

Scriptable Render Pipeline (URP, HDRP)

uPano automatically detects the use of Scriptable Render Pipeline, and if necessary, will ask you to enter the shader parameter where the texture should be set.

WebGL

When you'll try to use Google Street View, you may encounter a CORS (Cross-Origin Resource Sharing) restriction. https://en.wikipedia.org/wiki/Cross-origin_resource_sharing

Currently there is only one way to work around this - use PHP bridge (proxy). Example and instructions you can download here: https://infinity-code.com/downloads/uPanoCORS.zip

Panorama types (Pano Renderers)

Spherical

uPano - Spherical Panorama

The basis of the spherical panorama is an image collected from a variety of individual frames in a spherical (equidistant) projection. A characteristic feature of spherical panoramas is the maximum possible viewing angle (360 × 180 degrees).

uPano can display this type of panorama on a sphere or icosahedron. Icosahedron is a regular convex polyhedron, each face of which is an equilateral triangle. Using icosahedron allows you to improve the display of the panorama at the top and bottom points.

To display spherical panoramas, use Spherical Pano Renderer.

Cylindrical

uPano - Cylindrical Panorama

Cylindrical panorama is characterized by a viewing angle of 360 degrees horizontally and a viewing angle of less than 180 degrees vertically. In other words, a cylindrical panorama is a variant of a spherical panorama, devoid of zenith and nadir (images of the highest and lowest points of view).

To display cylindrical panoramas, use Cylindrical Pano Renderer.

Cubic panorama on six images

uPano - Cubic panorama on six images

Cubic panorama is obtained by projecting images onto the inner faces of the cube. You can imagine an observer inside a huge cube, on the inner walls of which are glued images of the appropriate scale. Cubic panorama allows you to create panoramas with viewing angles of 360 degrees horizontally and 180 degrees vertically. Like a spherical panorama, the cubic panorama is prone to distortions.

To display cubic panoramas on six images use Cube Faces Pano Renderer.

If you see the seams on the edges of the cube, select textures in Project window and set Wrap Mode - Clamp.

Cubic panorama on single image

uPano - Cubic panorama on single image

In this type of panorama, the images of the sides of the cube are combined into one large image.

There are three main types of layouts:

  1. Crosses
  2. Lines
  3. 3 rows, 2 columns

Each type has a horizontal and vertical orientation. Sides of the panorama can be reflected and / or rotated by a fixed angle (90, 180, 270).

uPano has presets for the main types of layouts and allows you to adjust UV of each side of the panorama.

To display cubic panoramas on single image, use Single Texture Cube Faces Pano Renderer.

Cubemap

uPano - Cubemap

uPano can display an existing cubemap as a panorama. https://docs.unity3d.com/Manual/class-Cubemap.html

To display cubemap panoramas, use Cubemap Pano Renderer.

Controls

Components that allow the user to control the panorama. You can use an unlimited number of different controls in any combination.

Mouse Control

Implements panorama control using the mouse and touch (on mobile devices).

Modes:

  1. Drag (by default) - the panorama will be moved by dragging. Supports inertia when you stop dragging.
  2. Free - the panorama will constantly move towards the cursor.
  3. Left Mouse Button Down - the panorama will move towards the cursor while you hold the left mouse button.

Implements the changing of fov using the mouse wheel and pinch to zoom (on mobile devices).

Keyboard Control

Implements panorama control using the keyboard.

To change pan and tilt, use the horizontal and vertical input axes. https://docs.unity3d.com/Manual/class-InputManager.html

To change fov, use «+» and «-» buttons on the main or numeric keypad.

You can adjust the sensitivity of changing the values and limit the rotation axes of the panorama.

Tip: To prevent pan, tilt or fov from changing using the keyboard, set the sensitivity to 0.

Compass Control

Implements panorama control using a device compass. This control changes only pan.

Gyro Control

Implements panorama control using a device gyro. This control changes pan and tilt.

UI Buttons Control

uPano - UI Buttons Control

Implements panorama control using the on-screen buttons. Automatically integrates with Auto Rotate plugin.

Joystick Control

uPano - Joystick Control

Implements control panorama uing the on-screen joystick. Drag the center part of the joystick and the panorama will move in the same direction.

UI Compass Control

uPano - UI Compass Control

Compass showing the current orientation of the panorama. Click on the center to set the orientation to the north. Click on the side arrows to rotate the panorama 90 degrees clockwise or counterclockwise.

Plugins

Scripts that implement additional features of panoramas. Formally, all control, managers of interactive elements and some other components are also plug-ins, but they have a lot of features and will be described in separate sections.

Auto Rotate

Automatically rotates the panorama clockwise.

When the user interacts with the panorama using any control, the automatic rotation stops. After 10 seconds of inactivity, automatic rotation resumes.

If tilt is not equal to zero, then this value will gradually tend to zero.

Automatically integrates with UI Buttons Control.

Downloader

Downloads the panorama texture at the specified URL. Optionally can download low resolution texture first.

Important: A low resolution texture must be of the same type as a high resolution texture.

Supports all Pano Renderers, except Cubemap.

Fingers Touch Gesture Connector

Implements integration with the Fingers asset - Touch Gestures. https://assetstore.unity.com/packages/tools/input-management/fingers-touch-gestures-for-unity-41076 When using this asset, fov changes will be made using Pinch to Zoom gesture in Fingers.

Limits

Allows you to limit the valid values of pan, tilt, and fov. Strongly recommended for use.

Multi Camera

Synchronous changes fov for multiple cameras. Additionally, it can change the local position of cameras depending on fov. This is useful for VR applications to prevent the problem of too much divergence of images for the left and right eyes when fov value is small.

Orthographic Cameras

Extends Multi Camera plug-in, allowing cameras to have an orthographic projection. Additionally, it has the ability to customize the conversion of fov - orthographicSize values.

Sync Views

Synchronize pan, tilt and fov changes for multiple panoramas. Important: to avoid changing values too quickly using the keyboard, use the Keyboard Control on only one panorama.

Time Switch

Automatically switches panoramas by timer.

Timed Gaze

Automatically clicks on interactive elements (HotArea, HotSpots, Directions) after the specified hover time.

Interactive Elements

Interactive element is an object in the panorama, with which the user can interact. Interactive elements support events and actions, and can be programmed for any behavior.

Hot Spot

Hot Spot Manager component adds hot spot support to the panorama.

Hot spot is an interactive GameObject, which is positioned on the panorama using pan and tilt.

uPano - HotSpot Manager

Hot Spot Manager contains:

  1. Default Prefab - GameObject, an instance of which will be used for hot spots, if no prefab for the element is specified.
  2. Button «+» - add a new hot spot.
  3. Total: X - the number of elements.
  4. Visual Editor - opens a visual editor.
  5. Collapse all - collapses all items and their events.
  6. Arrow down - collapse item fields.
  7. Title. This name will set to the GameObject - a hot spot instance.
  8. Button «x» - remove the hot spot.
  9. Prefab - GameObject, a copy of which will be used for hot spot.
  10. Pan, tilt - position hot spot on the panorama.
  11. Look To Center - prefab will always be oriented towards the center of the panorama.
  12. Rotation - local rotation of the hot spot instance.
  13. Scale - local scale of the hot spot instance.
  14. Distance Multiplier - the multiplier of the distance from the center of the panorama to the point on the mesh. Allows you to move the hot spot closer if it goes beyond the panorama.
  15. Quick Actions - allows you to quickly define basic behaviors without creating events.
  16. Load Panorama Prefab - loads a panorama from a prefab and switches to it.
  17. Switch To Panorama - switches to another panorama in the scene.
  18. Copy Pan Tilt - copies the current pan and tilt to the target panorama.
  19. Before Transition Prefab - an animation prefab that will be played before switching the panorama.
  20. After Transition Prefab - an animation prefab that will be played after switching the panorama.
  21. Tooltip - a tooltip that is displayed when you hover over an element.
  22. Events - hot spot events.
  23. Ignore Global Events - this element will ignore global events for all elements.

Hot Area

Hot Area Manager component adds hot area support to the panorama. Hot area is a polygon area defined by a set of points that have pan and tilt.

hot-area

In general, Hot Area Manager has the same fields as Hot Spot Manager, except for the settings for all directions:

Points - set of polygon points. Color - polygon color in Visual Element Editor.

Note: the polygon is not displayed in playmode.

Direction

Direction Manager component adds support for direction to the panorama.

Direction is an arrow that points in the direction of another panorama. This is positioned in the panorama using the pan.

uPano - Direction

In general, Direction Manager has the same fields as Hot Spot Manager, except for the settings for all directions: Default Prefab - GameObject, an instance of which will be used for direction, if no prefab for the element is specified. Internal Radius - the radius from the central point of rotation to the instance of the direction. External Radius - the radius from the camera to the center point around which direction will be located. Vertical Offset - vertical offset of the center point.

Visual Editor

uPano - Visual Editor

Visual editor makes it easy to manage interactive elements on the panorama.

Important: In the current version, the visual editor supports only spherical, cylindrical and cubic panoramas on single image.

Click «Window / Infinity Code / uPano / Visual Interactive Element Editor» or «Visual Editor» in the interactive element manager inspector to open the visual editor. Select in the «Hierarchy» or «Project» window any GameObject containing a panorama to display the used texture and interactive elements.

You can drag and scale the viewing area.

Click «Reset view» to reset the movement and scale of the viewing area.

To create an interactive elements, right-click and select «Create {TYPE OF ELEMENT}» from the context menu. A new interactive element will be created under the cursor.

You can drag element to any available panorama area. But you cannot drag an interactive element outside UV of the panoramas.

To remove element, right click on it and select «Remove» from the context menu.

Click on the interactive element using the left mouse button to open the interactive element settings window. This window displays the settings only for one element, so it is much more convenient to use it in Interactive Element Manager inspector.

Above the interactive element icon displayed title.

For hot spot: If the title is red, then prefab is not specified and hot spot will not be displayed.

Events

Interactive elements have five events: Clicking, pressing the left mouse button (or touch), releasing the left mouse button (or touch), the cursor is enter to the interactive element, the cursor is out from the interactive element.

For each event, you can add an unlimited number of actions. Action is a public method of a class that inherits MonoBehaviour, which takes an interactive element as a parameter. You can create your own actions, or use a predefined actions.

Global events

If your interactive elements have the same actions for an event, you can use global events that will be called for all interactive elements of the same type before the element's events.

To use global events, add the global event component of the appropriate type. For hot spot: HotSpotGlobalActions. For direction: DirectionGlobalActions.

If some interactive element should ignore global events, you can specify it in the settings of the element.

Predefined actions

Predefined actions are: used for all types of interactive elements and used only for hot spots.

For all types of interactive elements:

Copy Pan Tilt - copy pan and tilt from source to target panorama. Destroy Current Panorama - destroys the panorama to which the current interactive element related. Instantiate Prefab - creates an instance of the prefab in the scene. It can be a prefab of a panorama from a project. Load Another Panorama - creates an instance of the panorama prefab in the scene. Also, it allows you to copy the orientation settings from the current panorama. Load Scene - loads the scene by index or name. Open URL - opens a URL in a browser. Play Sound - plays sound from AudioClip or AudioSource. Set Cursor - sets cursor. Set Fov - sets FOV value. Set GameObject Active - enables or disables GameObject in the scene. Set Pan and Tilt - sets Pan and Tilt values. Set Scale - set the scale of the interactive element. Set Text - sets the value for Text component. Set Transform Position - sets the position for GameObject. Set Transform Rotation - sets the rotation for GameObject.

Only for hot spots:

Destroy Current Hot Spot - destroys the hotspot you interacted with. Set Hot Spot Color - sets the color of the first material of the current hot spot. Set Hot Spot Rotation - sets the rotation of the current hot spot. Show TextMesh Tooltip - sets the value for TextMesh component. Show Tooltip - shows the specified tooltip. Show Tooltip Multi Camera - shows the specified tooltip for Multi Camera.

All predefined actions have a public Invoke method, which must be called to perform the action.

Note: Show Tooltip Show Tooltip Multi Camera and Show TextMesh Tooltip actions have three public methods: Invoke and Show - show tooltip, Hide - hide tooltip.

In the future, the list of predefined actions will expand. If you have suggestions, what other actions need to be added, please contact us.

Quick actions

For interactive elements, there are the same actions that you will most likely use for most elements. You can create quick actions in Quick Actions section of the settings of the interactive element.

Load another panorama on click: Specify Load Panorama Prefab and Load Another Panorama action will be automatically added to the interactive element.

Switch to another panorama in the scene on click: Specify Switch To Panorama and Set GameObject Active action will be automatically added to the interactive element.

Showing a tooltip: Enter Tooltip text, select the action, and specify Tooltip Prefab. For the interactive element, the specified action will be automatically added.

Interactive elements without programming

uPano allows you to specify the behavior of interactive elements without programming.

Step by step instructions on the example of hot spot: Create a child GameObject for the panorama, which will contain hot spot events.

uPano - Interactive elements without programming

Tip: Create separate GameObject for each action. This will help you more easily navigate in action.

Important: If you want to make a prefab of the panorama, the action must be on the child of the panorama GameObject. Prefab cannot reference objects in the scene outside the prefab.

Select GameObject that will store the action. Add one of the predefined actions, or your own script containing the action.

uPano - Interactive elements without programming

In Hot Spot Manager, create a new Hot Spot. In the event that should perform this action, press «+». Specify GameObject that contains the action. Select the action script and Invoke method if you use predefined actions, or your own method that should be called.

Note: the method must contain the interactive element parameter, in which the element that triggered the action will be passed.

uPano - Interactive elements without programming

Transitions

uPano has a built-in system of compound transitions, allowing you to easily create complex unique transitions without programming.

For each action that supports transitions (DestroyCurrentPanorama, LoadAnotherPanorama, LoadScene), you can specify two transitions: Before - will be invoked before the action. After - will be invoked after the action.

Note: you need to specify not the transition itself, but Prefab which contains the transition.

All available transitions are in «Component / uPano / Transitions».

Simple transitions

All simple transitions are animated and smoothly change the state from initial to final.

Available simple transitions: Changing panorama values: Set Fov, Set Pan and Tilt. Changing interactive elements: Look At Active Element, Scale Interactive Elements. Full-screen overlays: Blur, Tint.

Important: Look At Active Element and Scale Interactive Elements (with Element Type except All Elements) cannot be used in After Transition, because the element that causes the transition does not exist anymore.

Compound transitions

Compound transitions are realized by combining several simple transitions using helper and combined transitions. Compound transitions are located in «Component / uPano / Transitions / Helpers».

Consecutive Transitions - an array of transitions, each element of which begins after the end of the previous one. The transition ends when the last element is completed.

Simultaneously Transitions - an array of transitions, all elements of which start at the same time. The transition ends when the longest element is completed.

Delay - helper transition, to implement the delay in other combined transitions.

Step-by-step example of how to create a compound transition

In this example, we will create two complex transitions. The first transition will simultaneously center and zoom the interactive element that the user clicked on, and blur the panorama. The second will perform the opposite action.

Before Transition: Create a new GameObject (Hierarchy / Create Empty) and rename it to BeforeTransition. Create a child GameObject (Hierarchy / Create Empty Child) and rename it to Phase 1. Add Look At Active Element transition, enable Use Fov, and set Target Fov - 10. Select BeforeTransition and create a child with name Phase 2. Add Blur transition and set Blur Material - TransitionBlurMaterial. Select BeforeTransition and add Simultaneously Transitions. Set Transitions / Size - 2, and select Element 0 - Phase 1, Element 1 - Phase 2. In Project, create Transitions folder, and then drag BeforeTransition from the Hierarchy to this folder. BeforeTransition name in Hierarchy should be blue. This means that prefab is created. Remove BeforeTransition from Hierarchy.

After Transition: Create a new GameObject and rename it to AfterTransition. Create a child GameObject and rename it to Phase 1. We cannot use Look At Active Element, because the element that caused the transition no longer exists. Add Set Fov transition, and set From Fov - 10, To Is Original - ON. Select AfterTransition and create a child with name Phase 2. Add Blur transition, set specify Blur Material - TransitionBlurMaterial, From Radius - 30, To Radius - 0. Select AfterTransition and add Simultaneously Transitions. Specify Transitions / Size - 2, and select Element 0 - Phase 1, Element 1 - Phase 2. Drag AfterTransition to Project / Transitions. Remove AfterTransition from Hierarchy.

Using transitions: Create a new hot spot and expand Quick Actions. In Target Panorama select the prefab of the panorama to which you want to go. Two new fields will shown: Before Transition Prefab and After Transition Prefab. Select the appropriate prefab from Project / Transitions. That's all, it remains to verify that this works. Start the scene and click on the hot spot to see the transitions.

Additional features

Video panoramas

uPano can display video panoramas.

To use a video panorama: Import the video into the project. Create a new Render Texture (Assets / Create / Render Texture). Specify the size of the Render Texture to be equal to the video resolution.

uPano - Video panoramas

In the scene, create a new GameObject, and add Video Player component to it. In Video Clip field, specify a video. Select Render Mode - Render Texture and specify the early created Render Texture in Target Texture field.

uPano - Video panoramas

In Pano Renderer, set Render Texture to Texture field, and adjust UV. When you start the scene, you will see a video panorama.

Tip: For Youtube 360 video, you need to use Single Texture Cube Faces Pano Renderer. UV Preset - Youtube (3x2).

Pano Downloader

A tool for downloading panoramas from third-party services by URL.

uPano - Pano Downloader

Open the extension manager to download and add support for the required provider. Open the browser and go to provider site. Use the map to open the panorama. Copy URL from your browser's address bar. Open Window / Infinity Code / uPano / Pano Downloader. Paste URL into URL field and click Download. The downloaded panorama will be saved in the folder «Assets / Panoramas».

Extensions

Open Window / Infinity Code / uPano / Extension Manager. This window contains third party providers and services that you can integrate with uPano. Enter your Invoice Number and click Download to start downloading the required extension.

Integration with third-party assets

Third-party assets are not included in uPano package and you must buy them separately. For integration, you need to have uPano and another asset in the project.

Fingers - Touch Gestures

https://assetstore.unity.com/packages/tools/input-management/fingers-touch-gestures-for-unity-41076

To use the Fingers - Touch Gestures integration, add the FingersTouchGesturesConnector component. When using this asset, fov changes will be made using Pinch to Zoom gesture in Fingers.

Online Maps

https://assetstore.unity.com/packages/tools/integration/online-maps-v3-138509

Integration with Online Maps allows you to display Google Street View panoramas using uPano. To enable integration, add Online Maps Pano Connector to the map GameObject and click Enable uPano. The map will show overlay for which Google Street View panoramas are available. When you click on the map, uPano will download and display the panorama of the location.

Playmaker

https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368

Integration with Playmaker allows you to use the uPano API in visual mode. To enable integration import «uPano-Playmaker-Integration-Kit.unitypackage» into the project.

You can do this in two ways:

  1. Window / Infinity Code / uPano / Playmaker Integration Kit
  2. Manually import the package located «Assets / Plugins / Infinity Code / uPano / Packages / uPano-Playmaker-Integration-Kit.unitypackage».

Playmaker will add new actions for uPano, grouped into sections starting with uPano.

uPano API

For more information about all public classes, methods, and variables, see API Reference.

Online version: https://infinity-code.com/docs/api/upano/

The local version of API Reference is located in «Plugins / Infinity Code / uPano / Documentation / API Reference (Do not unpack in assets folder).zip». Important: do not unpack the archive into Assets folder of your project.

The order of the values in the point on the panorama: Vector2, Vector3: X - pan, Y - tilt; Parameters of methods: first - pan, then - tilt.

The order of values in geographic coordinates: Vector2, Vector3: X - longitude, Y - latitude; Parameters of methods: first - longitude, then - latitude.

Making changes to the source code uPano

We do not recommend that you make changes to uPano code yourself, because you will lose it on update. Most tasks can be solved using API.

If you really need to modify the source code of uPano, please send us your changes. We will include your changes into the project, or we will give you the best way to do it.

Updating

We send only stable versions to Unity Asset Store. The update period is several months.

uPano has a built-in update system, using which you can download the latest versions. Important: Always make backups of the project before updating assets.

Select Window / Infinity Code / uPano / Check Updates or uPano / Help / Check Updates to open the built-in update system.

Specify your Invoice Number or Order Number. Select the update channel and click «Check New Versions».

You can find out your Invoice Number in Unity Asset Store order confirmation email, or page: https://assetstore.unity.com/orders

Each channel shows a maximum of 10 latest updates. If updates are available, then you can read the list of changes and download it.

If you have problems installing the update, then:

  1. Open an empty scene.
  2. Delete folder «Standard Assets / Infinity Code / uPano».
  3. Import the new version of uPano into the project.

If you want to return to the previous version of uPano, then select the «Stable Previous» channel. Using this channel you will be able to get 10 previous stable versions.

uPano automatically checks for updates every 24 hours. If the new version is available, you will see a red label in uPano Inspector header. Clicking on it will open the built-in update system.

Automatic check of the update does not require Invoice Number and uses the last selected update channel. If the update channel is not selected, only stable versions will be checked.

Support

We provide support by email (support@infinity-code.com in English and Russian, by Discrord (https://discord.gg/2XRWwPgZK4) or on the forum (https://forum.infinity-code.com) in English.

If something does not work for you, you found a bug, or you have any suggestions, please contact to us. Please don’t forget to specify your version of Unity, OS and the current version of uPano. The usual response time is from a few minutes to 24 hours.

We manually control the spam folder, so do not worry, we will not miss your request.

If you did not receive a response within 24 hours:

  1. Check the spam folder.
  2. Contact us using another way.

Other Infinity Code assets

Huge Texture

Huge Texture

https://assetstore.unity.com/packages/tools/input-management/huge-texture-163576

Huge Texture allows you to import and use textures larger than 8192x8192px.

How it works: When importing a texture, Huge Texture splits the texture into pages and saves it as a Texture Array. Texture Array is combined on the shader side, which does not create extra draw calls and has almost no effect on performance.

Features:

Requirements:

Mesh to Terrain

Mesh to Terrain

https://assetstore.unity.com/packages/tools/terrain/mesh-to-terrain-7271

Mesh to Terrain is a tool for easily and quickly converting a 3D terrain model created in 3ds Max, Terragen or any other editor to Unity Terrains. Mesh to Terrain can convert textures to SplatPrototypes (Terrain Layers), generate terrain from several models and split the model into several terrains.

Features:

Online Maps

Online Maps

https://assetstore.unity.com/packages/tools/integration/online-maps-v3-138509

Online Maps is a universal multi-platform mapping solution for your 2D, 3D, AR / VR and mobile applications and games.

Fully customizable, incredibly easy to learn and use, and at the same time is one of the most powerful and flexible solutions in the industry.

Supports a huge number of services for any mapping needs, and has integration with the best Asset Store assets.

The package contains the complete source code without dependencies, and if you want to add or change some feature, you can easily do it.

Don't have programming experience or don't know C# - Online Maps supports visual scripting using Bolt and Playmaker.

All the features to create any map in Unity in one asset.

Features:

Real World Terrain

Real World Terrain

https://assetstore.unity.com/packages/tools/terrain/real-world-terrain-8752

Real World Terrain is a tool for automatically creating high-quality terrains, meshes, Gaia stamps and RAW files based on real-world data with global coverage. Incredibly fast and easy to use, and allows you to create high-quality terrains in a couple of clicks. In addition, Real World Terrain can create buildings, roads, trees, grass, and rivers based on Open Street Map data. Real World Terrain is incredibly powerful and flexible. It has a powerful Editor API to automate the generation of terrains, and Runtime API positioning objects by coordinates, etc. Real World Terrain has integration with the best assets of the Asset Store, which gives almost unlimited possibilities in the generation of terrains.

Features:

Terrain Quality Manager

Terrain Quality Manager

https://assetstore.unity.com/packages/tools/terrain/terrain-quality-manager-28949

Terrain Quality Manager allows you to change the resolution of Heightmap, Detailmap, Alphamap and Basemap, without losing data. If you need to increase the quality of terrain, or optimize terrain for better performance, with this tool you can do it.

Features:

Tiny Terrain

Tiny Terrain

Tiny Terrain is a lossy Terrain Data compression technology for Unity Terrain Engine, which allows you to reduce the size of the data that Terrain takes in the project many times and significantly reduce the size of your application. You pay a little CPU time and additional memory usage, but save tens and hundreds of megabytes for each Terrain in the project. Even though the compression is lossy, in most cases you won't see any visual difference at all. A very high compression ratio is achieved due to the author's data preparation algorithms and then compression using Brotli. Even if your build or AssetBundle is already compressed using LZ4, LZ4HC or LZMA, Tiny Terrain will be able to reduce its size. Of course the difference in size won't be as huge as with the uncompressed data, but it's still pretty big.

The asset has highly optimized code using direct memory access, which allows for fast compression and decompression, and minimizes additional memory usage. On average, one Terrain is loaded in about 1 second. Tiny Terrain is not a 3rd party Terrain Engine, and you can use Unity Terrain API and any terrain tools you like, such as Real World Terrain, Gaia, Vegetation Studio, etc.

Using Tiny Terrain is very easy, and anyone can do it, even if it is their first day using Unity. Just add Tiny Terrain Loader component to Terrain and click Compress. If you are an advanced user or programmer, Tiny Terrain has events and API that will help you take full control of the loading process.

Features:

Platforms: The asset was tested on PC, Mac, Android, iOS, WebGL. The rest of the platforms have not been tested, but the asset should also work well on them.

Tree Tool

Tree Tool

https://assetstore.unity.com/packages/tools/terrain/tree-tool-221137

Tree Tool allows you to manage each tree individually.

Using this tool, you can perform the following actions on trees:

 

In addition, the tool can perform the following mass actions:

 

Tree Tool is compatible with all assets that create trees for Terrain.

Ultimate Editor Enhancer

Ultimate Editor Enhancer

https://assetstore.unity.com/packages/tools/utilities/ultimate-editor-enhancer-141831

Ultimate Editor Enhancer (ex uContext Pro) is productivity PowerPack that take your workflow in Unity Editor to a next level, simplifies working with content, adds new features to the editor, corrects and improves the editor’s built-in behaviors.

Dramatically improves Hierarchy, Inspector, Scene View and the editor itself.

Adds tools for quick navigation, creation and manipulation of objects.

 

Key Features:

List of tools:

Final words

We sincerely hope that you will enjoy using uPano. If you have any questions or problems, please contact us. We will try to help you as soon as possible.

Please don't forget to leave a review on the store page if you liked uPano, this helps us a lot! https://assetstore.unity.com/packages/tools/integration/upano-126396 It is very important for us to have feedback to make our assets better.

Links

Product page: https://infinity-code.com/assets/upano API Reference: https://infinity-code.com/docs/api/upano/ Email: support@infinity-code.com Discord: https://discord.gg/2XRWwPgZK4 Forum: https://forum.infinity-code.com YouTube: https://www.youtube.com/playlist?list=PL2QU1uhBMew87wEKLcaTRihCft-buVmdy Vimeo: https://vimeo.com/channels/upano Twitter: https://twitter.com/InfinityCodeCom