//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 FinalScript : MonoBehaviour { [DllImport ("CorePlugin")] public static extern int coreInitialize(); [DllImport ("CorePlugin")] private static extern IntPtr coreExecute(); [DllImport ("CorePlugin")] public static extern int coreFinalize(); //public string hover; public Texture play, stop, fast, slow, box, menu, captions, captionsActive, captionsInactive, resize, resolucao, settings, settingsActive, settingsInactive; public float initVarX, initVarY; public float hSliderValue; Boolean isSettingsActive = false; Boolean isCaptionsActive = true; string alfabeto = "0123456789,ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string stringPre; string[] stringPos; string aniName = ""; AnimationClip aniClip; string GetCurrentPlayingAnimationClip( ){ if(isCaptionsActive){ foreach(AnimationState anim in GetComponent()){ //Debug.Log(anim.name); if( GetComponent().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)); stop = (Texture) Resources.Load("buttons/Stop", typeof(Texture)); fast = (Texture) Resources.Load("buttons/Fast", typeof(Texture)); slow = (Texture) Resources.Load("buttons/Slow", typeof(Texture)); settings = (Texture) Resources.Load("buttons/Settings", typeof(Texture)); settingsActive = (Texture) Resources.Load("buttons/SettingsActive", typeof(Texture)); settingsInactive = (Texture) Resources.Load("buttons/Settings", 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.5f; loadIcons(); addAlpha( ); Debug.Log("Inicializando: "+coreInitialize( )); } void addAlpha( ){ foreach( char letter in alfabeto ){ aniClip = Resources.Load ("alpha/"+letter); if( aniClip ) GetComponent().AddClip(aniClip, ""+letter); else Debug.Log("Anim "+aniName+" not found"); } }//addAlpha void animStop( ){ GetComponent().Stop( ); aniClip = Resources.Load("ANIMS/anims/_default"); GetComponent().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()) anim.speed = hSliderValue; } public string glosa; public void catchGlosa(){ glosa = " _default "+Marshal.PtrToStringAnsi ( coreExecute( ) )+" _default "; //glosa = " _default "+"ABRIL ACADEMIA ABACATE ABAJUR"+" _default "; } void playFromDLL(){ Debug.Log("ReadFromDLL"); Debug.Log( "Running on "+Application.platform ); //if( Application.platform == RuntimePlatform.OS ) animStop(); catchGlosa( ); stringPos = glosa.Split(' '); foreach( string aniName in stringPos ){ aniClip = Resources.Load("anims/"+aniName); if( aniClip ){ GetComponent().AddClip(aniClip, aniName); GetComponent().CrossFadeQueued( aniName, 0.6F, QueueMode.CompleteOthers );//0.4 GetComponent().RemoveClip( aniName ); }else foreach(char letter in aniName) GetComponent().CrossFadeQueued(""+letter, 0.6F, QueueMode.CompleteOthers); }//foreach string aniName aniClip = Resources.Load("anims/_default"); GetComponent().AddClip(aniClip, "_default"); } void playFromFile(){ Debug.Log("ReadFromFile");// ClearConsole(); //while( GetComponent() != null) // GetComponent().Dequeue(); //GetComponent().Clear(); //GetComponent().CrossFadeQueued( PlayMode.StopAll ); GetComponent().Stop( ); stringPre = " _default " //+"ABRIL ACADEMIA" +glosa +" _default "; stringPos = stringPre.Split(' '); foreach( string aniName in stringPos ){ aniClip = Resources.Load("anims/"+aniName); if( aniClip ){ GetComponent().AddClip(aniClip, aniName); GetComponent().CrossFadeQueued( aniName, 0.6F, QueueMode.CompleteOthers );//0.4 GetComponent().RemoveClip( aniName ); }else foreach(char letter in aniName) GetComponent().CrossFadeQueued(""+letter, 0.6F, QueueMode.CompleteOthers); }//foreach string aniName aniClip = Resources.Load("anims/_default"); GetComponent().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+(play.width/2), play.width, play.height), new GUIContent("", play, "play"), "" )){ //playFromFile(); playFromDLL(); } //glosa = GUI.TextArea ( new Rect (10, 10,400, 100), glosa, 400); //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), initVarY+(slow.width/2)+(slow.width/3), box.height*3, box.height/4 ), hSliderValue, 0.0F, 2.0F ); GUI.DrawTexture(new Rect( initVarX+(box.height)*5+(slow.width), initVarY+(fast.width/2), fast.height, fast.height ), fast); } //FINISH_SPEED /** * * BOTAO DE LEGENDA * **/ if (GUI.Button(new Rect(initVarX+(box.height)*6+15, initVarY+(slow.width/2), settings.width, settings.height), captions, "")){ isCaptionsActive = !isCaptionsActive; } /** * * BOTAO DE CONFIGURAÇOES * **/ if (GUI.Button(new Rect(initVarX+(box.height)*7, initVarY+(slow.width/2), settings.width, settings.height), settings, "")){ isSettingsActive = !isSettingsActive; if(isSettingsActive) settings = settingsActive; else settings = settingsInactive; } if(isSettingsActive){ GUI.Box(new Rect(initVarX+(box.height)*6, initVarY-menu.width, menu.width, menu.height), menu, ""); GUI.Button ( new Rect( initVarX+(box.height)*6+10, initVarY-captions.width-20, captions.width, captions.height ), captions, "" ); if( isCaptionsActive ){ if( GUI.Button ( new Rect( initVarX+(box.height)*6+50, initVarY-captions.width-10, captionsActive.width, captionsActive.height ), captionsActive, "" ) ){ isCaptionsActive = !isCaptionsActive; } }else{ if( GUI.Button ( new Rect( initVarX+(box.height)*6+50, initVarY-captions.width-10, captionsInactive.width, captionsInactive.height ), captionsInactive, "" )){ isCaptionsActive = !isCaptionsActive; } } //if( GUI.Button ( new Rect( 10, 10, resize.width, resize.height ), resize, "" ) ){ GUI.Button ( new Rect( initVarX+(box.height)*6+resize.width+20, (initVarY-captions.width*2-45+(resolucao.height)), resolucao.width, resolucao.height ), resolucao, "" ); if( GUI.Button ( new Rect( initVarX+(box.height)*6+10, (initVarY-captions.width*2-40), resize.width, resize.height ), resize, "" ) ){ switch(Screen.width){ case 640: Screen.SetResolution(800, 600, false); break; case 800: Screen.SetResolution(1024, 768, false); break; case 1024: Screen.SetResolution(640, 480, false); break; default: Screen.SetResolution(640, 480, false); break; } //initVarX = ((Screen.width/2)-(box.width/2)); //initVarY = ((Screen.height)-(box.height)-10); } } { //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 //GameObject[] clones = GameObject.FindGameObjectsWithTag("Avatar"); //foreach(GameObject clone in clones){ Destroy(clone); } try{ GameObject.FindGameObjectWithTag("Avatar").SetActive(true); }catch(Exception e){Debug.Log("Nao conseguiu setar ativi");} try{ Destroy(GameObject.FindGameObjectWithTag("Clone")); }catch(Exception e){Debug.Log("Nao achou o clone");} Instantiate(GameObject.FindGameObjectWithTag("Avatar")).tag = ("Clone"); //GameObject.FindGameObjectWithTag("Avatar").SetActive(false); //Destroy (GameObject.FindGameObjectWithTag("Avatar")); //GameObject.FindGameObjectWithTag("Avatar").SetActive(true); }//BOTAO DE TESTE */ }//onGui //static void ClearConsole () { // // This simply does "LogEntries.Clear()" the long way: // var logEntries = System.Type.GetType("UnityEditorInternal.LogEntries,UnityEditor.dll"); // var clearMethod = logEntries.GetMethod("Clear", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public); // clearMethod.Invoke(null,null); //} void OnApplicationQuit() { Debug.Log("Finalizando: "+ coreFinalize( )); } }