46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
using UnityEngine;
|
|
|
|
public class SelectedVisual : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private BaseInteractableObject _selectedObject;
|
|
[SerializeField]
|
|
private GameObject[] visualGameObjectArray;
|
|
|
|
|
|
private void Start()
|
|
{
|
|
MouseInputManager.OnSelectedObjectChanged += Mouse_OnSelectedObjectChanged;
|
|
print($"{_selectedObject.name} is subscribed to OnSelectedObjectChanged");
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
MouseInputManager.OnSelectedObjectChanged -= Mouse_OnSelectedObjectChanged;
|
|
print($"{_selectedObject.name} is Unsubscribed to OnSelectedObjectChanged");
|
|
}
|
|
|
|
private void Mouse_OnSelectedObjectChanged(object sender, OnSelectedObjectChangedEventArgs e)
|
|
{
|
|
if (e.SelectedObject == _selectedObject)
|
|
{
|
|
Show();
|
|
}
|
|
else
|
|
{
|
|
Hide();
|
|
}
|
|
}
|
|
|
|
private void Show()
|
|
{
|
|
foreach (var visualGameObject in visualGameObjectArray)
|
|
visualGameObject.SetActive(true);
|
|
}
|
|
private void Hide()
|
|
{
|
|
foreach (var visualGameObject in visualGameObjectArray)
|
|
visualGameObject.SetActive(false);
|
|
}
|
|
}
|