rabidus-test/Assets/DisplaySwitchController.cs

74 lines
1.7 KiB
C#
Raw Normal View History

2023-10-09 15:12:08 +03:00
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.InputSystem;
public class DisplaySwitchController : MonoBehaviour
{
[SerializeField] public InputActionReference inputAction;
private List<DisplayIdentifier> d1List = new List<DisplayIdentifier>();
private List<DisplayIdentifier> d2List = new List<DisplayIdentifier>();
private int mainDisplay = 0;
private void Start()
{
Init();
ApplyChanges();
}
private void Init()
{
mainDisplay = PlayerPrefs.GetInt("Display_Settings", 0);
var tmpdisplays = FindObjectsOfType<DisplayIdentifier>().ToList();
d1List = tmpdisplays.Where(x => x.ID == DisplayID.Display_1).ToList();
d2List = tmpdisplays.Where(x => x.ID == DisplayID.Display_2).ToList();
}
private void Update()
{
if (inputAction.action.triggered)
{
SwapDisplays();
}
}
[ContextMenu("Swap Displays")]
private void SwapDisplays()
{
if (mainDisplay == 0)
mainDisplay = 1;
else
mainDisplay = 0;
PlayerPrefs.SetInt("Display_Settings", mainDisplay);
ApplyChanges();
}
private void ApplyChanges()
{
mainDisplay = PlayerPrefs.GetInt("Display_Settings", 0);
switch (mainDisplay)
{
case 0:
{
d1List.ForEach(x => x.SetId(0));
d2List.ForEach(x => x.SetId(1));
}
break;
case 1:
{
d1List.ForEach(x => x.SetId(1));
d2List.ForEach(x => x.SetId(0));
}
break;
}
}
}