Files
source/Assets/Scripts/ChatroomMenuEntry.cs

67 lines
2.0 KiB
C#

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ChatroomMenuEntry : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler {
private Image bgImg;
private Button optionsButton;
private bool isMadeBySelf = false;
private static ChatroomMenuEntry activeEntry;
public void Init(Image bgImgArg, Button optionsButtonArg, bool isMadeBySelfArg)
{
bgImg = bgImgArg;
optionsButton = optionsButtonArg;
isMadeBySelf = isMadeBySelfArg;
bgImg.color = new Color(50f / 255f, 50f / 255f, 50f / 255f);
optionsButton.gameObject.SetActive(false);
}
public void OnPointerEnter(PointerEventData e) {
if (!Application.isMobilePlatform) {
if (activeEntry != null && activeEntry != this) {
activeEntry.Deactivate();
}
if (activeEntry != this) {
Activate();
}
}
}
public void OnPointerExit(PointerEventData e) {
if (!Application.isMobilePlatform) {
if (activeEntry != null && activeEntry != this) {
activeEntry.Deactivate();
}
if (activeEntry == this) {
Deactivate();
}
}
}
public void OnPointerClick(PointerEventData e) {
if (Application.isMobilePlatform) {
if (activeEntry != null && activeEntry != this) {
activeEntry.Deactivate();
}
if (activeEntry == this) {
Deactivate();
} else {
Activate();
}
}
}
private void Activate() {
activeEntry = this;
bgImg.color = new Color(60f/255f, 60f/255f, 60f/255f);
optionsButton.gameObject.SetActive(isMadeBySelf);
}
private void Deactivate() {
bgImg.color = new Color(50f/255f, 50f/255f, 50f/255f);
optionsButton.gameObject.SetActive(false);
if (activeEntry == this) activeEntry = null;
}
}