using UnityEngine;
using System.Collections;
using UnityEngine.UI;
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);
}
}
///
/// User interfaces the button click.
///
/// Button type clicked.
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;
}
}
}