WebScript.cs 5.76 KB
//Log Dir         http://docs.unity3d.com/Manual/LogFiles.html
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
using System.Runtime.InteropServices;


public class WebScript : MonoBehaviour {

public string hover;

	public Texture
		play, stop, repeat,
		fast, slow,
		box, menu,
		captions, captionsActive, captionsInactive,
		resize, resolucao;

	
	public float initVarX, initVarY;
	public float hSliderValue;
	
	Boolean isCaptionsActive = false;

	string alfabeto = "0123456789,ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	string stringPre; string[] stringPos;
	string aniName = ""; AnimationClip aniClip;


	string GetCurrentPlayingAnimationClip( ){

		if(isCaptionsActive){

			foreach(AnimationState anim in GetComponent<Animation>()){
			
				//Debug.Log(anim.name);


				if( GetComponent<Animation>().IsPlaying( anim.name ) ){
					
				 	if(anim.name.Split(' ')[0].Equals("_default"))
						return null;

					return anim.name.Split(' ')[0];
					//	return anim.name.Split(' ');
					
				}

			}//foreach

		}

		return null;

	}
	
	
	
	void loadIcons(){

		captions =  (Texture) Resources.Load("buttons/Subtitle", typeof(Texture));
		//play =	 	(Texture) Resources.Load("buttons/Play", typeof(Texture));
		repeat =	 	(Texture) Resources.Load("buttons/Repeat", typeof(Texture));
		stop = 		(Texture) Resources.Load("buttons/Stop", typeof(Texture));
		fast = 		(Texture) Resources.Load("buttons/Fast", typeof(Texture));
		slow = 		(Texture) Resources.Load("buttons/Slow", typeof(Texture));

		box = (Texture)  Resources.Load("buttons/_Barra", typeof(Texture));
		
		menu = (Texture)  Resources.Load("buttons/MenuConfig", typeof(Texture));
			captions = (Texture)  Resources.Load("buttons/Subtitle", typeof(Texture));
			resize = (Texture)  Resources.Load("buttons/Resolution", typeof(Texture));
			resolucao = (Texture)  Resources.Load("buttons/Resolucao", typeof(Texture));
			captionsActive = (Texture)  Resources.Load("buttons/CaptionsActive", typeof(Texture));
			captionsInactive = (Texture)  Resources.Load("buttons/CaptionsInactive", typeof(Texture));
			
		initVarX = ((Screen.width/2)-(box.width/2));
		initVarY = ((Screen.height)-(box.height)-10);

	}

	void Start( ){
	
		hSliderValue = 1.7f;	
		loadIcons();
		addAlpha( );
		Application.ExternalCall("onLoadPlayer");

	}


	void addAlpha( ){
	
		foreach( char letter in alfabeto ){
			
			aniClip = Resources.Load<AnimationClip> ("alpha/"+letter);
			if( aniClip ) GetComponent<Animation>().AddClip(aniClip, ""+letter);
			else Debug.Log("Anim "+aniName+" not found");
			
		}
	}//addAlpha


	
	void animStop( ){

		GetComponent<Animation>().Stop( );
		aniClip = Resources.Load<AnimationClip>("anims/_default");
		GetComponent<Animation>().CrossFadeQueued("_default", 0.6F, QueueMode.CompleteOthers, PlayMode.StopAll );
		

	}


	void updateGuiElements(){

		initVarX = ((Screen.width/2)-(box.width/2));
		initVarY = ((Screen.height)-(box.height)-10);

	}

	void Update( ){

//		if( hover == "play" )
//			Debug.Log( hover );
			
		updateGuiElements();
		foreach(AnimationState anim in GetComponent<Animation>()) anim.speed = hSliderValue;
	
	}


	public string glosa;

	public void catchGlosa( String glosa ){

		animStop( );
		this.glosa = " _default "+glosa+" _default ";
		playFromWEB();

	}

	void playFromWEB(){ 

		Debug.Log( "Running on "+Application.platform ); //if( Application.platform == RuntimePlatform.OS )
		
		GetComponent<Animation>().Stop( );
		
		stringPos = glosa.Split(' ');

		foreach( string aniName in stringPos ){
						aniClip = Resources.Load<AnimationClip>("anims/"+aniName);
			
			if( aniClip ){
				
				GetComponent<Animation>().AddClip(aniClip, aniName);
				GetComponent<Animation>().CrossFadeQueued( aniName, 0.6F, QueueMode.CompleteOthers );//0.4
				GetComponent<Animation>().RemoveClip( aniName );
				
			}else
				foreach(char letter in aniName)
					GetComponent<Animation>().CrossFadeQueued(""+letter, 0.6F, QueueMode.CompleteOthers);
			
		}//foreach string aniName
		
		aniClip = Resources.Load<AnimationClip>("anims/_default");
		GetComponent<Animation>().AddClip(aniClip, "_default");

	}



	void OnGUI() { /* GUI.backgroundColor = Color.clear; */ 
		/* Box onde ficarao os botoes; */ GUI.Box( new Rect ( initVarX, initVarY, box.width, box.height), box, "" );

		
		if( GUI.Button (new Rect(initVarX+(box.height/4)+10 , initVarY+(repeat.width/2), repeat.width, repeat.height), new GUIContent("",  repeat, "repeat"), "" )){

			playFromWEB();
		}


		//hover = GUI.tooltip;


		if( GUI.Button ( new Rect( initVarX+(box.height)+15, initVarY+(stop.width/2), stop.height, stop.height ), stop, "" ) )
			animStop( );
		

		{ //INIT_SPEED
			
				GUI.DrawTexture(new Rect( initVarX+(box.height)*2, initVarY+(slow.width/2), slow.height, slow.height ), slow);
				
				hSliderValue = GUI.HorizontalSlider ( new Rect( initVarX+(box.height)*2+(slow.width)+5, initVarY+(slow.width/2)+(slow.width/3), box.height*3.5f, box.height/4 ), hSliderValue, 0.0F, 2.0F );
				
				GUI.DrawTexture(new Rect( initVarX+(box.height)*6+15, initVarY+(fast.width/2), fast.height, fast.height ), fast);
				
		} //FINISH_SPEED
		

		
		/**
		*
		* BOTAO DE LEGENDA
		*
		**/
		if (GUI.Button(new Rect(initVarX+(box.height)*7, initVarY+(slow.width/2), captions.width, captions.height), captions, "")){
			
			isCaptionsActive = !isCaptionsActive;
			
		}
		

		{ //INIT_CAPTIONS
				
			GUIStyle myLabelStyle = new GUIStyle(GUI.skin.label);
				myLabelStyle.fontSize = 30;
				myLabelStyle.alignment = TextAnchor.UpperCenter;
				
		
			ShadowAndOutline.DrawOutline( new Rect(0, initVarY-35, Screen.width, Screen.height), GetCurrentPlayingAnimationClip( ), myLabelStyle, Color.black, Color.yellow, 3);

		} //FINISH_CAPTIONS

		
		//if( GUI.Button ( new Rect( 10, 10, 100, 100 ), "DEBUGGER" ) ){//BOTAO DE TESTE }//BOTAO DE TESTE



	}//onGui

	void OnApplicationQuit() {
		
	}
	
}