Map
Controller Coordinates Target System Crosshair System Radar System
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
using UnityEngine;
|
||||
|
||||
[DisallowMultipleComponent]
|
||||
public sealed class MapController : MonoBehaviour
|
||||
{
|
||||
[Header("Main References")]
|
||||
[SerializeField] private MapCrosshairController crosshair = null;
|
||||
[SerializeField] private MapCoordinateSystem coordinateSystem = null;
|
||||
|
||||
[Header("Target System")]
|
||||
[SerializeField] private MapTargetController targetController = null;
|
||||
[SerializeField] private MapTarget targetPrefab = null;
|
||||
[SerializeField] private Transform targetParent = null;
|
||||
[SerializeField] private bool createTargetsOnStart = true;
|
||||
|
||||
[Header("Radar System")]
|
||||
[SerializeField] private MapRadarController radarController = null;
|
||||
|
||||
[Header("Crosshair Objects")]
|
||||
[SerializeField] private Transform relayX = null;
|
||||
[SerializeField] private Transform relayY = null;
|
||||
[SerializeField] private Transform crosshairVisual = null;
|
||||
|
||||
[Header("Input")]
|
||||
[SerializeField, Min(0f)] private float movementSpeed = 1f;
|
||||
[SerializeField] private bool useKeyboardInput = true;
|
||||
|
||||
public MapCoordinateSystem CoordinateSystem => coordinateSystem;
|
||||
public Transform CrosshairVisual => crosshairVisual;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (targetController != null)
|
||||
{
|
||||
targetController.Configure(
|
||||
coordinateSystem,
|
||||
targetPrefab,
|
||||
targetParent);
|
||||
|
||||
if (createTargetsOnStart)
|
||||
targetController.CreateAndPlaceTargets();
|
||||
}
|
||||
|
||||
if (radarController != null)
|
||||
radarController.Configure(coordinateSystem, targetController, targetPrefab);
|
||||
|
||||
if (crosshair == null)
|
||||
return;
|
||||
|
||||
crosshair.Configure(
|
||||
coordinateSystem,
|
||||
relayX,
|
||||
relayY,
|
||||
crosshairVisual,
|
||||
movementSpeed,
|
||||
useKeyboardInput,
|
||||
targetController);
|
||||
|
||||
}
|
||||
|
||||
public void SetHorizontalAxis(float value)
|
||||
{
|
||||
if (crosshair != null)
|
||||
crosshair.SetHorizontalAxis(value);
|
||||
}
|
||||
|
||||
public void SetVerticalAxis(float value)
|
||||
{
|
||||
if (crosshair != null)
|
||||
crosshair.SetVerticalAxis(value);
|
||||
}
|
||||
|
||||
public Vector2 GetCrosshairCoordinates()
|
||||
{
|
||||
return crosshair != null ? crosshair.GetCrosshairCoordinates() : Vector2.zero;
|
||||
}
|
||||
|
||||
public void CreateAndPlaceTargets()
|
||||
{
|
||||
if (targetController != null)
|
||||
targetController.CreateAndPlaceTargets();
|
||||
}
|
||||
|
||||
public bool TryGetNearestTarget(out MapTarget target, out float distance)
|
||||
{
|
||||
if (crosshair != null)
|
||||
return crosshair.TryGetNearestTarget(out target, out distance);
|
||||
|
||||
target = null;
|
||||
distance = -1f;
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool ActivateRadar()
|
||||
{
|
||||
return radarController != null && radarController.ActivateRadar();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user