Table of Contents

Class UITKMap

Namespace
FishMMO.Client
Assembly
FishMMO.Client.dll

The world map: a large, pannable, zoomable view of the whole scene, drawn over the baked overhead image, with the player's explored ground, every marker they may see, the scene's authored landmarks, and the notes they have pinned to it.

public class UITKMap : UITKCharacterControl
Inheritance
Object
Component
Behaviour
MonoBehaviour
UITKMap
Inherited Members
MonoBehaviour.IsInvoking()
MonoBehaviour.CancelInvoke()
MonoBehaviour.StopCoroutine(Coroutine)
MonoBehaviour.StopAllCoroutines()
MonoBehaviour.destroyCancellationToken
MonoBehaviour.useGUILayout
MonoBehaviour.didStart
MonoBehaviour.didAwake
MonoBehaviour.runInEditMode
Behaviour.enabled
Behaviour.isActiveAndEnabled
Component.GetComponent<T>()
Component.TryGetComponent<T>(out T)
Component.GetComponentInChildren<T>()
Component.GetComponentsInChildren<T>()
Component.GetComponentInParent<T>()
Component.GetComponentsInParent<T>()
Component.GetComponents<T>()
Component.GetComponentIndex()
Component.CompareTag(TagHandle)
Component.transform
Component.transformHandle
Component.gameObject
Component.tag
Object.GetEntityId()
Object.GetInstanceID()
Object.GetHashCode()
Object.InstantiateAsync<T>(T)
Object.InstantiateAsync<T>(T, Transform)
Object.InstantiateAsync<T>(T, Vector3, Quaternion)
Object.InstantiateAsync<T>(T, Transform, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion)
Object.Instantiate(Object, Vector3, Quaternion, Transform)
Object.Instantiate(Object)
Object.Instantiate(Object, Scene)
Object.Instantiate<T>(T, InstantiateParameters)
Object.Instantiate<T>(T, Vector3, Quaternion, InstantiateParameters)
Object.Instantiate(Object, Transform)
Object.Instantiate<T>(T)
Object.Instantiate<T>(T, Vector3, Quaternion)
Object.Instantiate<T>(T, Vector3, Quaternion, Transform)
Object.Instantiate<T>(T, Transform)
Object.Destroy(Object)
Object.DestroyImmediate(Object)
Object.DontDestroyOnLoad(Object)
Object.DestroyObject(Object)
Object.FindObjectsOfType<T>()
Object.FindObjectsByType<T>(FindObjectsSortMode)
Object.FindObjectsByType<T>(FindObjectsInactive, FindObjectsSortMode)
Object.FindObjectOfType<T>()
Object.FindFirstObjectByType<T>()
Object.FindAnyObjectByType<T>()
Object.FindFirstObjectByType<T>(FindObjectsInactive)
Object.FindAnyObjectByType<T>(FindObjectsInactive)
Object.FindObjectsByType<T>()
Object.FindObjectsByType<T>(FindObjectsInactive)
Object.ToString()
Object.name
Object.hideFlags

Remarks

Why this draws a baked image and the minimap does not. The minimap is a live camera because it is small, centred on the player, and wants to show the world as it is right now. The world map covers an entire zone: rendering that live would mean an orthographic camera wide enough to photograph kilometres of terrain, every frame the panel is open, and it would show nothing but the small part of the zone the client has actually streamed — a map of a continent with holes in it. A bake taken in the editor has the whole scene loaded and costs nothing at runtime.

What the player can do to it that they cannot do to the minimap. Pan, zoom out as far as their Cartography allows, filter by category, write notes, and fast travel. The notes are the reason the panel has a side bar at all; everything else would have fitted in the corner.

Fast travel. A discovered waypoint is a marker like any other until it is clicked, which selects it into the side bar's waypoint section; the button there sends a WaypointTravelRequestBroadcast. Nothing moves until the server answers — a refusal comes back with a reason and the button re-enables, an arrival closes the map. The click, arrival, refusal and discovery each have a sound slot, and OnFastTravelClicked is the hook for anything else that wants the click.

What it does not show. Exactly what the minimap does not show — the marker rules are applied by the same MapMarkerFilter, so a hostile player who is too far away for the minimap is equally absent here. Zooming out on the world map reveals more terrain, which is baked, public and identical for every player; it never reveals another entity.

Fields

FastTravelArriveSound

[Tooltip("Played when the server confirms the character arrived. Optional.")]
public AudioClip FastTravelArriveSound

Field Value

AudioClip

FastTravelClickSound

[Header("Fast Travel Sounds")]
[Tooltip("Played when the fast travel button is clicked. Optional.")]
public AudioClip FastTravelClickSound

Field Value

AudioClip

FastTravelRefusedSound

[Tooltip("Played when the server refuses the request. Optional.")]
public AudioClip FastTravelRefusedSound

Field Value

AudioClip

WaypointDiscoveredSound

[Tooltip("Played when a waypoint is discovered. Optional.")]
public AudioClip WaypointDiscoveredSound

Field Value

AudioClip

Properties

Layer

Draw order tier for this panel. See UITKPanelLayer.

protected override UITKPanelLayer Layer { get; }

Property Value

UITKPanelLayer

Methods

OnDestroying()

Drops subscriptions.

public override void OnDestroying()

OnPostSetCharacter()

Recentres on the character and rebuilds everything derived from the scene.

public override void OnPostSetCharacter()

OnPostUnsetCharacter()

Clears the view when the character goes away.

public override void OnPostUnsetCharacter()

OnStarting()

Builds the view and wires every control.

public override void OnStarting()

OnTick()

Keeps the view, markers and readouts current while the panel is open.

protected override void OnTick()

Show()

Centres on the character and refreshes when the panel is opened.

public override void Show()

Events

OnFastTravelClicked

Raised when the player clicks the fast travel button, before the request is sent. Parameters: the scene name and the waypoint index. The hook for anything that wants the click beyond the sound slot above — an FX, a tutorial, analytics.

public static event Action<string, int> OnFastTravelClicked

Event Type

Action<string, int>