PlayerManager.cs 3.18 KB
//Log Dir         http://docs.unity3d.com/Manual/LogFiles.html
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
using UnityEngine.UI;


public class PlayerManager : GenericPlayerManager {

	//Importacao de metodos de instancia do core via DLLs
	[DllImport ("CorePlugin")] public static extern int coreInitialize();
	[DllImport ("CorePlugin")] private static extern IntPtr coreExecute();
	[DllImport ("CorePlugin")] public static extern int coreUpdate();
	[DllImport ("CorePlugin")] public static extern int coreFinalize();

	public void UPDATE(){
		Debug.Log("init update");
		coreUpdate();
		Debug.Log("updating");
	}

	public Button playButton;
	public Sprite pauseSprite;
	public Sprite playSprite;

	public Button stopButton;
	private Graphic stopButtonGraphic;
	private Color enabledAlpha = new Color(1F, 1F, 1F, 1F);
	private Color disabledAlpha = new Color(1F, 1F, 1F, 0.5F);

	//InputField INFIELD;

	//Primeiro metodo que o player executa
	public override void Start()
	{
		Debug.Log("Datapath: "+Application.dataPath);

		//seta a resolucao inicial da tela
		Screen.SetResolution(640, 480, false);

		//metodo que puxa as dlls do core
		try{ Debug.Log("Inicializando: "+coreInitialize()); } catch (Exception e) { Debug.Log (e.ToString()); }

		//INFIELD = gameObject.GetComponent<InputField>(); //campo de texto para digitar a glosa pra testes

		stopButtonGraphic = stopButton.GetComponent<Graphic>();
		stopButtonGraphic.color = disabledAlpha;

		base.Start();
	}

	//Aqui, a primeira glosa serve para gerar players para as plataformas suportadas *desktop
	//		a segunda serve para testes com o botao play do canvas
	//		a terceira, para testes com a textbox
	public string catchGlosa()
	{
		glosa = Marshal.PtrToStringAnsi ( coreExecute( ) );
		//glosa = " _default "+"ABACATE ABAJUR"+" _default ";
		//glosa = "AB XERETAR XEROCOPIA ALGUEM ABC DEF GHI";
		//glosa = "XERETAR XEROCOPIA ASDBNM 987345 H3J4K5, F=D-=S-=A=- UUUUAAAAA7777444NNNNCCCAAAABBCCCCC";
		//glosa = "AB, XADREZ XADREIS XERETAR XEROCOPIA MATEUS ABCDEF GHIJKL123 9876543210_ ABACATE ABAJUR MNOPQR STUVWX YZ";
		//glosa = "XADREZ XERETAR XEROX XICARA XINGAR";
		//glosa = "XADREZ XERETAR ABC XINGAR";
		//glosa = " _default "+INFIELD.text.ToString().ToUpper()+" _default ";

		return glosa;
	}

	public void start_local_play()
	{
		catchGlosa();
		base.play();
	}

	protected override WWW loadAssetBundle(string aniName)
	{
		string assetPath = Application.dataPath + "/Bundles/" + aniName;

		if ( ! File.Exists(assetPath))
			return null;

		try {
			WWW www = new WWW("file://" + assetPath);
			return www;
		} catch (Exception e) {
			Debug.Log(e);
		}

		return null;
	}

	protected override void onPlayingStateChange()
	{
		if (base.playing)
		{
			playButton.GetComponent<Image>().sprite = base.paused
					? playSprite : pauseSprite;

			stopButtonGraphic.color = enabledAlpha;
		}
		else
		{
			playButton.GetComponent<Image>().sprite = playSprite;
			stopButtonGraphic.color = disabledAlpha;
		}
	}

	void OnApplicationQuit()
	{
		try {
			Debug.Log("Finalizando: " + coreFinalize());
		} catch (Exception e) {
			Debug.Log(e.ToString());
		}
	}

}