Commit 083e4236 authored by Zsanet Sueli's avatar Zsanet Sueli
Browse files

added the controller tooltips for all three modes

parent 839b6100
Loading
Loading
Loading
Loading
+7897 −2126

File changed.

Preview size limit exceeded, changes collapsed.

+61 −17
Original line number Diff line number Diff line
@@ -3,39 +3,83 @@ using UnityEngine.InputSystem;

public class Tooltip_Indicator : MonoBehaviour
{
    
    public LineRenderer lineRenderer;
    public Transform startTransform, endTransform;
    public InputActionProperty inputActionReference;

    public GameObject handTutorialIndicators;
    [SerializeField] private GameModeManager gameModeManager;

    public bool isVisible { get; private set; } = true;
    [System.Serializable]
    public class ModeTooltips
    {
        public StartMode mode;

    void Start()
        public GameObject[] leftTooltips;
        public GameObject[] rightTooltips;
    }

    public ModeTooltips[] tooltipsPerMode;

    private bool isVisible = true;

    void Awake()
    {
        ControllerTooltips(true);
        // Erstmal alles deaktivieren
        DisableAllTooltips();
    }

    private void Update()
    void Start()
    {
        lineRenderer.enabled = true;
        lineRenderer.SetPosition(0, startTransform.position);
        lineRenderer.SetPosition(1, endTransform.position);
        UpdateTooltipsByMode();
    }

        if (handTutorialIndicators != null && inputActionReference.action.WasPressedThisFrame())
    void Update()
    {
        // Toggle Sichtbarkeit per Input
        if (inputActionReference.action != null &&
            inputActionReference.action.WasPressedThisFrame())
        {
            ControllerTooltips(!isVisible);
            ToggleVisibility();
        }
    }

    private void ToggleVisibility()
    {
        isVisible = !isVisible;

        foreach (var group in tooltipsPerMode)
        {
            SetActiveArray(group.leftTooltips, isVisible);
            SetActiveArray(group.rightTooltips, isVisible);
        }
    }

    public void ControllerTooltips(bool state)
    private void UpdateTooltipsByMode()
    {
        foreach (var group in tooltipsPerMode)
        {
        isVisible = state;
            bool isActiveMode = group.mode == gameModeManager.CurrentMode;

        if (handTutorialIndicators != null) handTutorialIndicators.SetActive(state);
            SetActiveArray(group.leftTooltips, isActiveMode);
            SetActiveArray(group.rightTooltips, isActiveMode);
        }
    }

    private void DisableAllTooltips()
    {
        foreach (var group in tooltipsPerMode)
        {
            SetActiveArray(group.leftTooltips, false);
            SetActiveArray(group.rightTooltips, false);
        }
    }

    private void SetActiveArray(GameObject[] objects, bool state)
    {
        if (objects == null) return;

        foreach (var obj in objects)
        {
            if (obj != null)
                obj.SetActive(state);
        }
    }
}
 No newline at end of file
+12 −1
Original line number Diff line number Diff line
@@ -10,16 +10,23 @@ public class GameModeManager : MonoBehaviour

    [SerializeField] private MapTeleportToCurvedArea tsunamiController;
    [SerializeField] private MonoBehaviour miniMapController;
    [SerializeField] private MonoBehaviour curvedWorldManager; 

    [SerializeField] private GameObject locationAParent;
    [SerializeField] private GameObject locationBParent;
    [SerializeField] private GameObject locationCParent;
    [SerializeField] private XRInteractionManager xrManager;

    public StartMode CurrentMode { get; private set; }



    void Awake()
    {


        CurrentMode = GameSettings.SelectedStartMode;

        locationAParent.SetActive(false);
        locationBParent.SetActive(false);
        locationCParent.SetActive(false);
@@ -30,6 +37,7 @@ public class GameModeManager : MonoBehaviour
        {
            case StartMode.TsunamiMode:
                tsunamiController.enabled = true;
                curvedWorldManager.enabled = true;
                miniMapController.gameObject.SetActive(false);
                xrManager.enabled = false;
                
@@ -37,6 +45,8 @@ public class GameModeManager : MonoBehaviour

            case StartMode.MiniMapMode:
                tsunamiController.enabled = false;
                curvedWorldManager.enabled = false;

                miniMapController.enabled = true;
                xrManager.enabled = false;

@@ -44,6 +54,7 @@ public class GameModeManager : MonoBehaviour

            case StartMode.HopMode:
                tsunamiController.enabled = false;
                curvedWorldManager.enabled = false;
                miniMapController.gameObject.SetActive(false);
                xrManager.enabled = true;

+6 −3
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ public class GameModeManagerArena : MonoBehaviour
    [SerializeField] private XRInteractionManager xrManager;

    [SerializeField] private TMP_Text entryMessageText;

    [SerializeField] private MonoBehaviour curvedWorldManager;



@@ -34,6 +34,7 @@ public class GameModeManagerArena : MonoBehaviour
        switch (GameSettings.SelectedStartMode) 
        {
            case StartMode.TsunamiMode:
                curvedWorldManager.enabled = true;
                tsunamiController.enabled = true;
                miniMapController.gameObject.SetActive(false);
                xrManager.enabled = false;
@@ -41,6 +42,7 @@ public class GameModeManagerArena : MonoBehaviour
                break;

            case StartMode.MiniMapMode:
                curvedWorldManager.enabled = false;
                tsunamiController.enabled = false;
                miniMapController.enabled = true;
                xrManager.enabled = false;
@@ -48,6 +50,7 @@ public class GameModeManagerArena : MonoBehaviour
                break;

            case StartMode.HopMode:
                curvedWorldManager.enabled = false;
                tsunamiController.enabled = false;
                miniMapController.gameObject.SetActive(false);
                xrManager.enabled = true;
@@ -77,7 +80,7 @@ public class GameModeManagerArena : MonoBehaviour

        
        

        //DELETE THIS NOT USED IN ARENA SCENE
        switch (GameSettings.SelectedLocation)
        {
            case StartLocation.LocationA:
+5 −1
Original line number Diff line number Diff line
@@ -15,6 +15,10 @@ public class GameStatusIndikator : MonoBehaviour
    private bool finishedUIShown = false;
    public float displayTime = 3f;


  


    void Update()
    {