Class UITKMinimap
The heads-up minimap: a live overhead view centred on the player, with markers, fog of war, a location readout and a way into the world map.
public class UITKMinimap : UITKCharacterControl
- Inheritance
-
ObjectComponentBehaviourMonoBehaviourUITKMinimap
- 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
What this panel owns and what it borrows. It owns its zoom, its rotation mode and the decision of when to render; everything else — the overhead camera, the explored map, the notes, the marker rules — lives in ClientMapSystem and is shared with the world map. The panel is also the map subsystem's heartbeat: it drives Tick() from its own update whether or not it is visible, because exploration happens when the character walks, not when the player looks at a map.
The bugs this replaced. The previous implementation rendered nothing at all, and had four independent reasons for it: it overwrote the camera's culling mask with an inspector field that was left at zero, so only an empty layer was drawn; the only component that put anything on that layer was used by no prefab in the project; the camera sat at a height of 1000 against a far clip plane of 1000, placing the ground exactly on the far plane; and the camera's own transform started below the world with the panel closed, so nothing positioned it until the player pressed the minimap key. Each of those alone would have produced the same black square, which is why reading the code never explained it. The camera is now configured entirely in code and re-asserted on every render — see MinimapCameraRenderer.
Fields
AdditionalLayers
Extra layers the overhead camera photographs beyond Default, Ground and Water.
[Tooltip("Extra layers the minimap camera photographs, beyond Default, Ground and Water.")]
public LayerMask AdditionalLayers
Field Value
- LayerMask
MinimapCamera
A camera in the scene to use for the overhead render instead of creating one.
[Tooltip("Optional scene camera for the overhead render. Leave empty to have one created.")]
public Camera MinimapCamera
Field Value
- Camera
Remarks
Optional, and entirely reconfigured when it is used: position, rotation, projection, clipping planes, clear flags and culling mask are all written by the renderer on every render. Leaving this empty is the recommended setup — the renderer then makes its own camera and there is nothing in a scene to drift out of step.
WorldSceneDetails
The scene details cache, used to find the current scene's map definition.
[Tooltip("World scene details cache. Supplies each scene's map definition and boundaries.")]
public WorldSceneDetailsCache WorldSceneDetails
Field Value
Remarks
Assigned in the inspector, and handed to ClientMapSystem rather than kept. The world map needs the same asset and is opened from here, so routing it through the shared system means only one panel has to carry the reference.
Properties
Layer
Draw order tier for this panel. See UITKPanelLayer.
protected override UITKPanelLayer Layer { get; }
Property Value
Methods
OnDestroying()
Drops subscriptions and shuts the map subsystem down.
public override void OnDestroying()
OnPostSetCharacter()
Points the map subsystem at the new character.
public override void OnPostSetCharacter()
OnPostUnsetCharacter()
Writes anything outstanding and clears the map.
public override void OnPostUnsetCharacter()
OnQuitToLogin()
Flushes the explored map before the client returns to the login screen.
public override void OnQuitToLogin()
OnStarting()
Builds the view, mounts it, and wires the panel's controls.
public override void OnStarting()
OnTick()
Advances the map subsystem, whether or not the panel is on screen.
protected override void OnTick()
Remarks
UITKControl drives this from its own Update for every control, so
there is no second Update here to shadow the base one — a mistake this codebase
has made before and documents at length on UITKControl.Update.