Ejemplo n.º 1
0
    protected override void AfterUpdate()
    {
        base.AfterUpdate();

        if (api.showMarkerTooltip == OnlineMapsShowMarkerTooltip.onHover)
        {
            OnlineMapsMarkerInstanceBase markerInstance = GetBillboardMarkerFromScreen(Input.mousePosition);
            if (markerInstance != null)
            {
                api.tooltip       = markerInstance.marker.label;
                api.tooltipMarker = markerInstance.marker;
            }
        }

        if (allowAddMarker3DByN && Input.GetKeyUp(KeyCode.N))
        {
            OnlineMapsMarker3D m = new OnlineMapsMarker3D
            {
                position = GetCoords(),
                scale    = marker3DScale,
                control  = this
            };
            m.Init(transform);
            double tlx, tly, brx, bry;
            api.GetTopLeftPosition(out tlx, out tly);
            api.GetBottomRightPosition(out brx, out bry);
            m.Update(tlx, tly, brx, bry, api.zoom);
            List <OnlineMapsMarker3D> markerList = markers3D.ToList();
            markerList.Add(m);
            markers3D = markerList.ToArray();
        }
    }
    /// <summary>
    /// Adds a new 3D marker on the map.
    /// </summary>
    /// <param name="markerLng">Marker longitude.</param>
    /// <param name="markerLat">Marker latitude.</param>
    /// <param name="prefab">Marker prefab.</param>
    /// <returns>Marker instance.</returns>
    public OnlineMapsMarker3D AddMarker3D(double markerLng, double markerLat, GameObject prefab)
    {
        OnlineMapsMarker3D marker;

        if (OnAddMarker3D != null)
        {
            marker = OnAddMarker3D(markerLng, markerLat, prefab);
            if (marker != null)
            {
                return(marker);
            }
        }

        Array.Resize(ref markers3D, markers3D.Length + 1);
        marker = new OnlineMapsMarker3D
        {
            prefab  = prefab,
            control = this,
            scale   = marker3DScale,
            allowDefaultMarkerEvents = allowDefaultMarkerEvents
        };
        marker.SetPosition(markerLng, markerLat);
        marker.Init(transform);
        markers3D[markers3D.Length - 1] = marker;

        if (OnMarker3DAdded != null)
        {
            OnMarker3DAdded(marker);
        }

        return(marker);
    }
    protected override void AfterUpdate()
    {
        RaycastHit hit;
        if (Physics.Raycast(activeCamera.ScreenPointToRay(Input.mousePosition), out hit))
        {
            OnlineMapsMarker3DInstance instance = hit.collider.gameObject.GetComponent<OnlineMapsMarker3DInstance>();
            if (instance != null)
            {
                api.tooltip = instance.marker.label;
                api.tooltipMarker = instance.marker;
            }
        }

        if (allowAddMarker3DByN && Input.GetKeyUp(KeyCode.N))
        {
            OnlineMapsMarker3D m = new OnlineMapsMarker3D
            {
                position = GetCoords()
            };
            m.Init(transform);
            m.Update(api.topLeftPosition, api.bottomRightPosition, api.zoom);
            List<OnlineMapsMarker3D> markerList = markers3D.ToList();
            markerList.Add(m);
            markers3D = markerList.ToArray();
        }
    }
Ejemplo n.º 4
0
    /// <summary>
    /// Adds a new 3D marker on the map.
    /// </summary>
    /// <param name="markerLng">Marker longitude.</param>
    /// <param name="markerLat">Marker latitude.</param>
    /// <param name="prefab">Marker prefab.</param>
    /// <returns>Marker instance.</returns>
    public OnlineMapsMarker3D AddMarker3D(double markerLng, double markerLat, GameObject prefab)
    {
        OnlineMapsMarker3D marker;

        if (OnAddMarker3D != null)
        {
            marker = OnAddMarker3D(markerLng, markerLat, prefab);
            if (marker != null)
            {
                return(marker);
            }
        }

        List <OnlineMapsMarker3D> ms = markers3D.ToList();

        marker = new OnlineMapsMarker3D
        {
            prefab  = prefab,
            control = this,
            scale   = marker3DScale,
            allowDefaultMarkerEvents = allowDefaultMarkerEvents
        };
        marker.SetPosition(markerLng, markerLat);
        marker.Init(transform);
        ms.Add(marker);
        markers3D = ms.ToArray();
        return(marker);
    }
 /// <summary>
 /// Adds a new 3D marker on the map.
 /// </summary>
 /// <param name="markerPosition">Vector2. X - Longituge, Y - Latitude.</param>
 /// <param name="prefab">Marker prefab.</param>
 /// <returns>Marker instance.</returns>
 public OnlineMapsMarker3D AddMarker3D(Vector2 markerPosition, GameObject prefab)
 {
     List<OnlineMapsMarker3D> ms = markers3D.ToList();
     OnlineMapsMarker3D marker = new OnlineMapsMarker3D { position = markerPosition, prefab = prefab };
     marker.Init(transform);
     ms.Add(marker);
     markers3D = ms.ToArray();
     return marker;
 }
Ejemplo n.º 6
0
    /// <summary>
    /// Adds a new 3D marker on the map.
    /// </summary>
    /// <param name="markerPosition">Vector2. X - Longituge, Y - Latitude.</param>
    /// <param name="prefab">Marker prefab.</param>
    /// <returns>Marker instance.</returns>
    public OnlineMapsMarker3D AddMarker3D(Vector2 markerPosition, GameObject prefab)
    {
        List <OnlineMapsMarker3D> ms     = markers3D.ToList();
        OnlineMapsMarker3D        marker = new OnlineMapsMarker3D
        {
            position = markerPosition,
            prefab   = prefab,
            control  = this,
            scale    = marker3DScale,
            allowDefaultMarkerEvents = allowDefaultMarkerEvents
        };

        marker.Init(transform);
        ms.Add(marker);
        markers3D = ms.ToArray();
        return(marker);
    }
    protected override void AfterUpdate()
    {
        base.AfterUpdate();

        Vector2 inputPosition = GetInputPosition();

        if (allowCameraControl)
        {
#if (!UNITY_ANDROID && !UNITY_IPHONE) || UNITY_EDITOR
            if (Input.GetMouseButton(1))
            {
                isCameraControl = true;
                if (lastInputPosition != inputPosition && lastInputPosition != Vector2.zero)
                {
                    Vector2 offset = lastInputPosition - inputPosition;
                    cameraRotation.x -= offset.y / 10f * cameraSpeed.x;
                    cameraRotation.y -= offset.x / 10f * cameraSpeed.y;
                }
                lastInputPosition = inputPosition;
            }
            else if (isCameraControl)
            {
                lastInputPosition = Vector2.zero;
                isCameraControl   = false;
            }
#else
            if (!allowZoom && allowCameraControl)
            {
                if (Input.touchCount == 2)
                {
                    Vector2 p1 = Input.GetTouch(0).position;
                    Vector2 p2 = Input.GetTouch(1).position;

                    Vector2 center = Vector2.Lerp(p1, p2, 0.5f);
                    if (lastGestureCenter == Vector2.zero)
                    {
                        lastGestureCenter = center;
                    }
                    else if (lastGestureCenter != center)
                    {
                        Vector2 offset = lastGestureCenter - center;
                        cameraRotation.x -= offset.y / 10f * cameraSpeed.x;
                        cameraRotation.y -= offset.x / 10f * cameraSpeed.y;
                        lastGestureCenter = center;
                    }

                    lastInputPosition = center;
                }
                else
                {
                    lastGestureCenter = Vector2.zero;
                }
            }
#endif

            UpdateCameraPosition();
        }

        if (map.showMarkerTooltip == OnlineMapsShowMarkerTooltip.onHover)
        {
            OnlineMapsMarkerInstanceBase markerInstance = GetBillboardMarkerFromScreen(inputPosition);
            if (markerInstance != null)
            {
                map.tooltip       = markerInstance.marker.label;
                map.tooltipMarker = markerInstance.marker;
            }
        }

        if (allowAddMarker3DByN && Input.GetKeyUp(KeyCode.N))
        {
            OnlineMapsMarker3D m = new OnlineMapsMarker3D
            {
                position = GetCoords(),
                scale    = marker3DScale,
                prefab   = default3DMarker,
                instance = default3DMarker != null?Instantiate(default3DMarker) as GameObject : null,
                control  = this
            };
            m.Init(transform);
            m.Update();

            if (markers3D == null)
            {
                markers3D = new OnlineMapsMarker3D[0];
            }
            Array.Resize(ref markers3D, markers3D.Length + 1);
            markers3D[markers3D.Length - 1] = m;
        }
    }
    protected override void AfterUpdate()
    {
        base.AfterUpdate();

        if (api.showMarkerTooltip == OnlineMapsShowMarkerTooltip.onHover)
        {
            OnlineMapsMarkerInstanceBase markerInstance = GetBillboardMarkerFromScreen(Input.mousePosition);
            if (markerInstance != null)
            {
                api.tooltip = markerInstance.marker.label;
                api.tooltipMarker = markerInstance.marker;
            }
        }

        if (allowAddMarker3DByN && Input.GetKeyUp(KeyCode.N))
        {
            OnlineMapsMarker3D m = new OnlineMapsMarker3D
            {
                position = GetCoords(),
                scale = marker3DScale,
                control = this
            };
            m.Init(transform);
            double tlx, tly, brx, bry;
            api.GetTopLeftPosition(out tlx, out tly);
            api.GetBottomRightPosition(out brx, out bry);
            m.Update(tlx, tly, brx, bry, api.zoom);
            List<OnlineMapsMarker3D> markerList = markers3D.ToList();
            markerList.Add(m);
            markers3D = markerList.ToArray();
        }
    }
 /// <summary>
 /// Adds a new 3D marker on the map.
 /// </summary>
 /// <param name="markerPosition">Vector2. X - Longituge, Y - Latitude.</param>
 /// <param name="prefab">Marker prefab.</param>
 /// <returns>Marker instance.</returns>
 public OnlineMapsMarker3D AddMarker3D(Vector2 markerPosition, GameObject prefab)
 {
     List<OnlineMapsMarker3D> ms = markers3D.ToList();
     OnlineMapsMarker3D marker = new OnlineMapsMarker3D
     {
         position = markerPosition, 
         prefab = prefab, 
         control = this,
         scale = marker3DScale,
         allowDefaultMarkerEvents = allowDefaultMarkerEvents
     };
     marker.Init(transform);
     ms.Add(marker);
     markers3D = ms.ToArray();
     return marker;
 }