using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class OpenAp : MonoBehaviour { public static bool cameraDonDestroy; Text txt; Animator controlAnimator; Image ImgWifi; Sprite sprWithWifi, sprNoWifi; Text hour; RectTransform mask1, mask1child, mask2, mask2child; public GameObject logInOut; public static float volumeSystem; private Sprite spriteNoSong, spriteWithSong; private Image ImageSong; public Color afterColor; //private int nbrIn = 1; private Vector2 mousedown, mouseUp; private bool changed = false; public bool aluno = false; public Sprite batEmptycharg, batEmptyNot, batFullCharg, batFullNot; public Image imgFullBattery, imgLowBattery, imgBattery; public Color corBaixaBateria; string sceneLoading; public static bool faceOpened; public GameObject particles; private void Awake() { if (!GameObject.Find("MainMenu Camera")) { GameObject createCamera = Instantiate(Resources.Load("MainMenu Camera")); createCamera.name = "MainMenu Camera"; DontDestroyOnLoad(createCamera); cameraDonDestroy = true; } else { cameraDonDestroy = false; } StartCoroutine(AdjustMenu()); if (PlayerPrefs.GetInt("aluno") == 1 || GameObject.Find("Canvas - Login") == null) { GameObject.Find("Canvas").GetComponent().EndAnimeLoad(); Transform trBackground = GameObject.Find("Canvas - Background").transform.Find("All").Find("Background"); Destroy(trBackground.Find("Black").gameObject); Destroy(trBackground.Find("Stars1").gameObject); Destroy(trBackground.Find("Stars4").gameObject); } } IEnumerator AdjustMenu() { Canvas canvasMenu = GameObject.Find("Canvas - Background").GetComponent(); canvasMenu.renderMode = RenderMode.ScreenSpaceCamera; canvasMenu.worldCamera = GameObject.Find("MainMenu Camera").GetComponent(); while (canvasMenu.transform.childCount == 0) { yield return new WaitForEndOfFrame(); } RectTransform rectAll = canvasMenu.transform.Find("All").GetComponent(); rectAll.localScale = new Vector3(1, 1, 1); rectAll.anchorMax = new Vector2(1, 1); rectAll.anchorMin = new Vector2(0, 0); rectAll.anchoredPosition = new Vector2(1, 1); //particles = Instantiate(Resources.Load("MainMenu/ParticlesStars"), GameObject.Find("Controller").transform); } // Start is called before the first frame update void Start() { Screen.sleepTimeout = SleepTimeout.SystemSetting; controlAnimator = GameObject.Find("Canvas").GetComponent(); txt = GameObject.Find("Status").GetComponent(); logInOut = GameObject.Find("LogOutScreen"); StartCoroutine(secondAwake()); } void DontMakeOpening() { controlAnimator.SetTrigger("DontMakeOp"); GameObject opObjects = GameObject.Find("FirstBackGround"); Destroy(opObjects); Mask mask = GameObject.Find("All").GetComponent(); mask.enabled = false; } #region inicialization IEnumerator checkFace() { InputField inputMat = GameObject.Find("InputUsu").GetComponent(); inputMat.interactable = false; TakePhoto takePhoto = GameObject.Find("PicTake").GetComponent(); while (true) { yield return StartCoroutine(takePhoto.takePhoto()); yield return new WaitForEndOfFrame(); if (takePhoto.response) { } else { yield return new WaitForSeconds(.5f); } } } IEnumerator secondAwake() { GameObject all = GameObject.Find("All"); WriteFile writeFile = GetComponent(); if (!aluno) { writeFile.checkFile(); } GameObject zoesleep = GameObject.Find("ZoeSleep"); if (zoesleep != null) { zoesleep.SetActive(false); } if (aluno) { differencesForStudentRobot(); } logInOut.SetActive(false); controlAnimator.SetBool("Open", true); //yield return new WaitForSecondsRealtime(8f); ImgWifi = GameObject.Find("WifiLogo").GetComponent(); sprWithWifi = Resources.Load("Sprites/WithWifi"); sprNoWifi = Resources.Load("Sprites/NoWifi"); StartCoroutine(CheckInternetConnection()); yield return new WaitForEndOfFrame(); StartCoroutine(checkHour()); yield return new WaitForEndOfFrame(); StartCoroutine(checkBattery()); StartCoroutine(checkCharging()); yield return new WaitForEndOfFrame(); spriteNoSong = Resources.Load("Sprites/SemSom"); spriteWithSong = Resources.Load("Sprites/Som"); ImageSong = GameObject.Find("Sound").GetComponent(); GameObject takePic = GameObject.Find("TakePic"); Destroy(takePic); string cena = PlayerPrefs.GetString("Cena"); if (!string.IsNullOrEmpty(cena)) { PlayerPrefs.SetString("Cena", ""); if (cena == "conversation") { ChangeToConversation(); } } yield break; } void differencesForStudentRobot() { //List itensToDestroy = new List(); controlAnimator.SetLayerWeight(4, 0); string[] itensToDestroy = { "MakeSound", "LogOut" }; foreach (string item in itensToDestroy) { GameObject obj = GameObject.Find(item); obj.SetActive(false); } ChangePositionNNameObj("Wifi (1)", "SettingsAluno", new Vector2(-165, 0)); ChangePositionNNameObj("Button OpenApp", "EnterCv", new Vector2(+165, 0)); ChangePositionNNameObj("Status", "settingsText", new Vector2(-165, -135)); GameObject oldstatus = GameObject.Find("settingsText"); GameObject newtext = Instantiate(oldstatus, oldstatus.transform.parent); ChangePositionNNameObj(newtext.name, "cvText", new Vector2(+165, -135)); Text cvText = newtext.GetComponent(); cvText.text = "Conversation"; } void ChangePositionNNameObj(string objName, string newname, Vector2 pos) { GameObject obj = GameObject.Find(objName); obj.name = newname; controlAnimator.Rebind(); obj.transform.localPosition = pos; obj.transform.localScale = new Vector2(1, 1); } public void ShowUpdateScreen() { GameObject updateScreen = Instantiate(Resources.Load("UpdateScreen/UpdateScreen")); updateScreen.transform.parent = GameObject.Find("Canvas").GetComponent(); updateScreen.transform.localScale = new Vector3(1, 1, 1); RectTransform rect = updateScreen.GetComponent(); rect.anchoredPosition = new Vector2(0, 0); rect.offsetMax = new Vector2(0, 0); rect.offsetMin = new Vector2(0, 0); //rect.anchorMin = new Vector2(0, 0); } IEnumerator CheckInternetConnection() { if (Application.internetReachability == NetworkReachability.NotReachable) { ImgWifi.sprite = sprNoWifi; controlAnimator.SetBool("NoWifi", true); yield return new WaitForSecondsRealtime(5); controlAnimator.SetBool("NoWifi", false); } else { ImgWifi.sprite = sprWithWifi; } yield break; } IEnumerator checkHour() { hour = GameObject.Find("Hour").GetComponent(); while (true) { string txt = DateTime.Now.ToShortTimeString(); hour.text = txt; yield return new WaitForSecondsRealtime(60); } } IEnumerator checkCharging() { bool isLoad = true; while (true) { if (SystemInfo.batteryStatus == BatteryStatus.Charging) { if (!isLoad) { imgFullBattery.sprite = batFullCharg; imgLowBattery.sprite = batEmptycharg; isLoad = true; } } else { if (isLoad) { imgFullBattery.sprite = batFullNot; imgLowBattery.sprite = batEmptyNot; isLoad = false; } } yield return new WaitForSecondsRealtime(1); } } IEnumerator checkBattery() { while (true) { float bat = SystemInfo.batteryLevel; bat = bat * 100; bat = bat / 4; bat -= 25; bat = -bat; mask1 = GameObject.Find("MaskB").GetComponent(); mask1child = GameObject.Find("ImgFullB").GetComponent(); mask2 = GameObject.Find("MaskB2").GetComponent(); mask2child = GameObject.Find("ImgEmptyB").GetComponent(); mask1.anchoredPosition = new Vector2(0, -bat); mask1child.anchoredPosition = new Vector2(0, bat); //Debug.Log(bat); float newbat = 25 - bat; //Debug.Log(newbat); mask2.anchoredPosition = new Vector2(0, newbat); mask2child.anchoredPosition = new Vector2(0, -newbat); if (SystemInfo.batteryLevel < 0.15f) { imgBattery.color = corBaixaBateria; imgLowBattery.color = corBaixaBateria; imgFullBattery.color = corBaixaBateria; } else { imgBattery.color = Color.white; imgFullBattery.color = Color.white; imgLowBattery.color = Color.white; } yield return new WaitForSecondsRealtime(120); } } #endregion public void WakeUpZoe() { //controlAnimator.SetBool("ZoeFace", true); SetAnimeBool("ZoeFace"); StartCoroutine(waitToDestroyZoe()); } IEnumerator waitToDestroyZoe() { yield return new WaitForSecondsRealtime(2); GameObject obj = GameObject.Find("ZoeSleep"); obj.SetActive(false); } public void OpenSettings() { ChangeToSettingsScene(); } public void OpenGamification() { ChangeToGamification(); } public void GoToEdit() { ChangeToEditScene(); } void ChangeToEditScene() { AsyncOperation obj = SceneManager.LoadSceneAsync("Transition", LoadSceneMode.Additive); obj.completed += (asyncOperation) => { //Do stuff here with returned value asyncOperation GameObject.Find("Canvas - Transition").GetComponent().StartLoadingScene("EditZoe"); StartCoroutine(WaitToDeactivateScene()); }; } void ChangeToSettingsScene() { AsyncOperation obj = SceneManager.LoadSceneAsync("Transition", LoadSceneMode.Additive); obj.completed += (asyncOperation) => { //Do stuff here with returned value asyncOperation GameObject.Find("Canvas - Transition").GetComponent().StartLoadingScene("Config"); StartCoroutine(WaitToDeactivateScene()); }; } void ChangeToGamification() { AsyncOperation obj = SceneManager.LoadSceneAsync("Transition", LoadSceneMode.Additive); obj.completed += (asyncOperation) => { //Do stuff here with returned value asyncOperation GameObject.Find("Canvas - Transition").GetComponent().StartLoadingScene("Gaming"); StartCoroutine(WaitToDeactivateScene()); }; } IEnumerator WaitToDeactivateScene() { yield return new WaitForSecondsRealtime(.6f); SceneManager.UnloadSceneAsync("SampleScene", UnloadSceneOptions.UnloadAllEmbeddedSceneObjects); } public void OpenClass() { StartCoroutine(openAppwait("com.myrobot.AppClass")); } public void VolumeChange(Slider volumeset) { volumeSystem = volumeset.value; if (volumeSystem == 0) { ImageSong.sprite = spriteNoSong; } else { ImageSong.sprite = spriteWithSong; } } #region anime Global Functions public void SetAnimeBool(string name) { controlAnimator.SetBool(name, true); } public void SetAnimeBoolFalse(string name) { controlAnimator.SetBool(name, false); } public void SetAnimeBoolInverse(string name) { bool value = controlAnimator.GetBool(name); controlAnimator.SetBool(name, !value); } #endregion public void openApp() { ChangeToConversation(); } public void ChangeToConversation() { AsyncOperation obj = SceneManager.LoadSceneAsync("Transition", LoadSceneMode.Additive); obj.completed += (asyncOperation) => { //Do stuff here with returned value asyncOperation GameObject.Find("Canvas - Transition").GetComponent().StartLoadingScene("FaceConversation"); StartCoroutine(WaitToDeactivateScene()); }; } IEnumerator openAppwait(string bundleidinsert) { yield return new WaitForSecondsRealtime(0.75f); bool fail = false; string bundleId = bundleidinsert; string activityName = "com.unity3d.player.UnityPlayerActivity"; // Nome da Activity principal do Unity AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = up.GetStatic("currentActivity"); try { AndroidJavaObject intent = new AndroidJavaObject("android.content.Intent"); AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent"); AndroidJavaObject componentName = new AndroidJavaObject("android.content.ComponentName", bundleId, activityName); intent.Call("setComponent", componentName); intent.Call("addFlags", intentClass.GetStatic("FLAG_ACTIVITY_NEW_TASK")); ca.Call("startActivity", intent); Debug.Log("Abrindo app: " + bundleId + "/" + activityName); } catch (System.Exception e) { Debug.LogError("Erro ao abrir app: " + e.Message); fail = true; } up.Dispose(); ca.Dispose(); } IEnumerator openAppwait2(string bundleidinsert) { yield return new WaitForSecondsRealtime(0.75f); bool fail = false; //string bundleId = "com.yongyida.robot.sdkdemo"; // your target bundle id //string bundleId = "com.myrobot.myrobotclass"; string bundleId = bundleidinsert; AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); AndroidJavaObject ca = up.GetStatic("currentActivity"); AndroidJavaObject packageManager = ca.Call("getPackageManager"); AndroidJavaObject launchIntent = null; try { launchIntent = packageManager.Call("getLaunchIntentForPackage", bundleId); } catch (System.Exception e) { fail = true; } if (fail) { //open app in store //Application.OpenURL("https://google.com"); } else { //open the app ca.Call("startActivity", launchIntent); } up.Dispose(); ca.Dispose(); packageManager.Dispose(); launchIntent.Dispose(); } public void CloseAplication() { Application.Quit(); } #region LogOut public void ShowScreenLogOut() { logInOut.SetActive(true); } public void HideScreenLogOut() { logInOut.SetActive(false); } public void LogOutSession() { GameObject all = GameObject.Find("All"); Image image = all.GetComponent(); Mask mask = all.GetComponent(); image.enabled = true; mask.enabled = true; PlayerPrefs.SetInt("Logado", 0); SetAnimeBool("logOut"); StartCoroutine(LogOutSessionCoroutine()); } IEnumerator LogOutSessionCoroutine() { yield return new WaitForSecondsRealtime(2.5f); GameObject thisCamera = GameObject.Find("MainMenu Camera"); AsyncOperation loadScene = SceneManager.LoadSceneAsync("LogOut"); loadScene.completed += (asyncOperation) => { Destroy(thisCamera); cameraDonDestroy = false; }; //SceneManager.UnloadSceneAsync("SampleScene"); } #endregion void OnApplicationPause(bool pauseStatus) { WriteFile write = GetComponent(); if (!write.checkFile()) { LogOutSession(); } } }