MiniGame-PushPush/Assets/Epic Toon FX/Demo/Scripts/VFX Library/UICanvasManager.cs
2023-10-04 20:20:04 +09:00

102 lines
2.5 KiB
C#

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
namespace ETFXPEL
{
public class UICanvasManager : MonoBehaviour {
public static UICanvasManager GlobalAccess;
void Awake () {
GlobalAccess = this;
}
public bool MouseOverButton = false;
public Text PENameText;
public Text ToolTipText;
// Use this for initialization
void Start () {
if (PENameText != null)
PENameText.text = ParticleEffectsLibrary.GlobalAccess.GetCurrentPENameString();
}
// Update is called once per frame
void Update () {
// Mouse Click - Check if mouse over button to prevent spawning particle effects while hovering or using UI buttons.
if (!MouseOverButton) {
// Left Button Click
if (Input.GetMouseButtonUp (0)) {
// Spawn Currently Selected Particle System
SpawnCurrentParticleEffect();
}
}
if (Input.GetKeyUp (KeyCode.A)) {
SelectPreviousPE ();
}
if (Input.GetKeyUp (KeyCode.D)) {
SelectNextPE ();
}
}
public void UpdateToolTip(ButtonTypes toolTipType) {
if (ToolTipText != null) {
if (toolTipType == ButtonTypes.Previous) {
ToolTipText.text = "Select Previous Particle Effect";
}
else if (toolTipType == ButtonTypes.Next) {
ToolTipText.text = "Select Next Particle Effect";
}
}
}
public void ClearToolTip() {
if (ToolTipText != null) {
ToolTipText.text = "";
}
}
private void SelectPreviousPE() {
// Previous
ParticleEffectsLibrary.GlobalAccess.PreviousParticleEffect();
if (PENameText != null)
PENameText.text = ParticleEffectsLibrary.GlobalAccess.GetCurrentPENameString();
}
private void SelectNextPE() {
// Next
ParticleEffectsLibrary.GlobalAccess.NextParticleEffect();
if (PENameText != null)
PENameText.text = ParticleEffectsLibrary.GlobalAccess.GetCurrentPENameString();
}
private RaycastHit rayHit;
private void SpawnCurrentParticleEffect() {
// Spawn Particle Effect
Ray mouseRay = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast (mouseRay, out rayHit)) {
ParticleEffectsLibrary.GlobalAccess.SpawnParticleEffect (rayHit.point);
}
}
/// <summary>
/// User interfaces the button click.
/// </summary>
/// <param name="buttonTypeClicked">Button type clicked.</param>
public void UIButtonClick(ButtonTypes buttonTypeClicked) {
switch (buttonTypeClicked) {
case ButtonTypes.Previous:
// Select Previous Prefab
SelectPreviousPE();
break;
case ButtonTypes.Next:
// Select Next Prefab
SelectNextPE();
break;
default:
// Nothing
break;
}
}
}
}