//====================================================================================================// public void OnButtonClick(Interactable interactable, Button button) { foreach (Button interactableButton in buttons) { if (interactableButton != button) { interactableButton.gameObject.GetComponent <Image>().sprite = settings.interactableIcon; } else { interactableButton.gameObject.GetComponent <Image>().sprite = settings.interactableIconSelected; } } AudioManager.Play("UI_Hover"); if (interactableTitle.text != interactable.Name) { interactable.ClickOnInteractable(); interactableTitle.text = interactable.Name; ToggleInteractableGroup(true); InteractablePreviewUI.SetPreviewObject(interactable, 0); for (int i = 0; i < 4; i++) { int temp = i; interactableButtons[i].gameObject.GetComponentInChildren <TMPro.TMP_Text>().text = interactable.stateData.getStateName(i); interactableButtons[i].gameObject.GetComponent <FastRecoveryButton>().Interactable = interactable; interactableButtons[i].gameObject.GetComponent <FastRecoveryButton>().ActionIndex = temp; if (GameManager.Mode == GameMode.Rehearsal) { if (InteractablePath.NextInteractable.ID == interactable.ID) { if (InteractablePath.NextAction == temp) { interactableButtons[i].gameObject.GetComponent <Animation>().Play(); /*ColorBlock colors = interactableButtons[i].colors; * colors.normalColor = new Color(189, 205, 217); * colors.highlightedColor = new Color(189, 205, 217); * interactableButtons[i].colors = colors;*/ } } } interactableButtons[i].onClick.AddListener(() => OnInteractableButtonClick(temp)); } } else { button.gameObject.GetComponent <Image>().sprite = settings.interactableIcon; InteractablePreviewUI.ClearPreviewObject(); startingTitleImage.gameObject.SetActive(false); ToggleInteractableGroup(false); for (int i = 0; i < 4; i++) { interactableButtons[i].onClick.RemoveAllListeners(); } } }
//====================================================================================================// public void CheckForProgress() { if (InteractableLog.Count > interactableProgess) { interactableProgess = InteractableLog.Count; for (int i = 0; i < buttons.Count; i++) { if (buttons[i].gameObject.GetComponent <Image>().sprite == settings.interactableIconSelected) { buttons[i].gameObject.GetComponent <Animation>().Play(); } } if (GameManager.Mode == GameMode.Rehearsal && InteractableLog.Count % 3 != 0) { InteractablePreviewUI.ClearPreviewObject(); float currentScale; if (settings.restrictViewport) { currentScale = (settings.scale * slider.value) / slider.minValue; } else { currentScale = (settings.scale * slider.value) / 1000; } if (settings.useInteractableUIPositions) { pin.transform.localPosition = new Vector3(InteractablePath.NextInteractable.LookAtPosition.x * currentScale, InteractablePath.NextInteractable.LookAtPosition.z * currentScale, 0); } else { pin.transform.localPosition = new Vector3(InteractablePath.NextInteractable.transform.localPosition.x * currentScale, InteractablePath.NextInteractable.transform.localPosition.z * currentScale, 0); } pin.transform.position = new Vector3(pin.transform.position.x, pin.transform.position.y + 20, pin.transform.position.z); for (int i = 0; i < 4; i++) { interactableButtons[i].gameObject.GetComponent <Animation>().Stop(); interactableButtons[i].gameObject.GetComponent <Image>().color = Color.white; /*ColorBlock colors = interactableButtons[i].colors; * colors.normalColor = Color.white; * colors.highlightedColor = Color.white; * interactableButtons[i].colors = colors;*/ } } } }
//====================================================================================================// public void OnSlideValueChanged() { InteractablePreviewUI.ClearPreviewObject(); startingTitleImage.gameObject.SetActive(false); ToggleInteractableGroup(false); for (int i = 0; i < 4; i++) { interactableButtons[i].onClick.RemoveAllListeners(); } float newScale; float newXOffset; float newYOffset; if (settings.restrictViewport) { newScale = (settings.scale * slider.value) / slider.minValue; newXOffset = (settings.xOffset * slider.value) / slider.minValue; newYOffset = (settings.yOffset * slider.value) / slider.minValue; } else { newScale = (settings.scale * slider.value) / 1000; newXOffset = (settings.xOffset * slider.value) / 1000; newYOffset = (settings.yOffset * slider.value) / 1000; } for (int i = 0; i < buttons.Count; i++) { buttons[i].gameObject.GetComponent <Image>().sprite = settings.interactableIcon; if (settings.useInteractableUIPositions) { buttons[i].transform.parent.localPosition = new Vector3(interactables[i].LookAtPosition.x * newScale, interactables[i].LookAtPosition.z * newScale, 0); } else { buttons[i].transform.parent.localPosition = new Vector3(interactables[i].transform.localPosition.x * newScale, interactables[i].transform.localPosition.z * newScale, 0); } } if (GameManager.Mode == GameMode.Rehearsal) { if (settings.useInteractableUIPositions) { pin.transform.localPosition = new Vector3(InteractablePath.NextInteractable.LookAtPosition.x * newScale, InteractablePath.NextInteractable.LookAtPosition.z * newScale, 0); } else { pin.transform.localPosition = new Vector3(InteractablePath.NextInteractable.transform.localPosition.x * newScale, InteractablePath.NextInteractable.transform.localPosition.z * newScale, 0); } pin.transform.position = new Vector3(pin.transform.position.x, pin.transform.position.y + 20, pin.transform.position.z); } if (settings.useRenderTexture) { rawMap.transform.localPosition = new Vector3(0, 0, 0); rawMap.rectTransform.sizeDelta = new Vector2(slider.value, slider.value); rawMap.transform.GetChild(0).localPosition = new Vector3(newXOffset, newYOffset, 0); } else { map.transform.localPosition = new Vector3(0, 0, 0); map.rectTransform.sizeDelta = new Vector2(slider.value / settings.source.bounds.size.y * settings.source.bounds.size.x, slider.value); map.transform.GetChild(0).localPosition = new Vector3(newXOffset, newYOffset, 0); } }
//====================================================================================================// public void Toggle(bool active) { if (!active) { ToggleInteractableGroup(false); for (int i = 0; i < 4; i++) { interactableButtons[i].onClick.RemoveAllListeners(); } foreach (Button button in buttons) { button.gameObject.GetComponent <Animation>().Stop(); button.gameObject.GetComponent <Image>().sprite = settings.interactableIcon; ColorBlock colors = button.gameObject.GetComponent <Button>().colors; colors.normalColor = Color.white; button.gameObject.GetComponent <Button>().colors = colors; } if (settings.useRenderTexture) { rawMap.transform.localPosition = new Vector3(0, 0, 0); if (settings.restrictViewport) { rawMap.rectTransform.sizeDelta = new Vector2(980, 980); slider.value = slider.minValue; } } else { map.transform.localPosition = new Vector3(0, 0, 0); if (settings.restrictViewport) { if ((980 / settings.source.bounds.size.y * settings.source.bounds.size.x) < 880f) { map.rectTransform.sizeDelta = new Vector2(880, 880 / settings.source.bounds.size.x * settings.source.bounds.size.y); } else { map.rectTransform.sizeDelta = new Vector2(980 / settings.source.bounds.size.y * settings.source.bounds.size.x, 980); } slider.value = slider.minValue; } else { map.rectTransform.sizeDelta = new Vector2(1000 / settings.source.bounds.size.y * settings.source.bounds.size.x, 1000); slider.value = 1000; } } InteractablePreviewUI.ClearPreviewObject(); } if (GameManager.Mode == GameMode.Recall && active && InteractablePreviewUI.Show) { InteractablePreviewUI.ToggleShow(); } else if (GameManager.Mode == GameMode.Rehearsal && active && InteractableLog.Count % 3 != 0) { InteractablePreviewUI.SetPreviewObject(InteractablePath.NextInteractable, InteractablePath.Instance.actionIds[InteractablePath.Instance.nextIndex]); InteractablePreviewUI.SetPreviewAction(InteractablePath.Instance.actionIds[InteractablePath.Instance.nextIndex]); } }