FadeFX.cs 1.92 KB
using UnityEngine;
using System;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class FadeFX : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler {

	public PlayerManager playerManager;
	public ScreenManager screenManager;

	public GameObject update_box;
	public Button stopButton;

	public CanvasRenderer[] renderers;
	public Button[] buttons;

	private bool active = false;

	//Cria referência para o colider do avatar e torna a barra transparente
	public void Start()
	{
		Deactivate();
	}

	public bool isActive() {
		return this.active;
	}

	// Listeners de eventos do mouse
	public void OnPointerEnter(PointerEventData eventData){ Activate(); }
	public void OnPointerExit(PointerEventData eventData){ Deactivate(); }

	/*
	 *	Desabilita o colider do avatar para bloquear a rotação
	 *	Em seguida retorna o visual padrão da barra de controles
	 *	e reativa a interação com os botões
	 */
	private void Activate()
	{
		this.active = true;
		//this.screenManager.setAvatarColliderState(false);

		foreach (CanvasRenderer renderer in this.renderers)
			renderer.SetAlpha(1F);

		foreach (Button button in this.buttons)
			button.interactable = true;

		if (String.IsNullOrEmpty(this.playerManager.gloss))
			this.stopButton.interactable = false;
	}

	/*
	 *	Habilita o colider do avatar para desbloquear a rotação
	 *	Em seguida diminui o alpha dos componentes da barra de controles tornando-os transparentes
	 *	Logo após desativa a interação com os botões para impedir que fiquem em status "highlighted"
	 */
	private void Deactivate()
	{
		if ( ! SwitchResolution.showbox && ! update_box.activeSelf)
		{
			this.active = false;
			//this.screenManager.setAvatarColliderState(true);

			foreach (CanvasRenderer renderer in this.renderers)
				renderer.SetAlpha(0.2F);

			foreach (Button button in this.buttons)
				button.interactable = false;

			this.stopButton.interactable = false;
		}
	}

}