Class UITKMap
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
-
ObjectComponentBehaviourMonoBehaviourUITKMap
- Inherited Members
-
MonoBehaviour.IsInvoking()MonoBehaviour.CancelInvoke()MonoBehaviour.StopCoroutine(Coroutine)MonoBehaviour.StopAllCoroutines()MonoBehaviour.destroyCancellationTokenMonoBehaviour.useGUILayoutMonoBehaviour.didStartMonoBehaviour.didAwakeMonoBehaviour.runInEditModeBehaviour.enabledBehaviour.isActiveAndEnabledComponent.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.transformComponent.transformHandleComponent.gameObjectComponent.tagObject.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.nameObject.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
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