private IEnumerator CameraMoveAnim(StageSelectController controller, bool forward) { if (_startPosition == null) { _startPosition = _targetCamera.transform.position; } controller.IsFreeze = true; var start = forward ? (Vector3)_startPosition : MovePosition; var end = forward ? MovePosition : (Vector3)_startPosition; var t = 0.0f; while (t < 1.0f) { t = Mathf.Min(t + Time.deltaTime * Speed, 1.0f); _targetCamera.transform.position = Vector3.Lerp(start, end, t); yield return(null); } controller.IsFreeze = false; if (CanStateChange) { controller.State = forward ? StageSelectState.Select : StageSelectState.Title; } }
/// <summary> /// 最初に呼ばれる /// </summary> /// <param name="owner"></param> public void Init(StageSelectController owner) { _owner = owner; GetComponentInChildren <Button>().onClick.AddListener(() => { AudioManager.PlaySE("click03"); _owner.ShowStageWindow(this); }); GetComponentInChildren <Text>().text = Title; //達成状況によってフレームの色を変える var data = GameData.StageData[LoadPathName]; //未クリア if (data.Score == 0) { FrameImage.color = new Color(0, 0, 0, 0); } //とりあえずクリア else if (data.Accuracy < 1.0f) { FrameImage.sprite = Resources.Load <Sprite>("Texture/ClearFrame"); } //パーフェクト else { FrameImage.sprite = Resources.Load <Sprite>("Texture/ClearParfectFrame"); } }
public void OnExecute(StageSelectController controller, bool forward, bool warp) { if (!warp) { StartCoroutine(CameraMoveAnim(controller, forward)); } else { if (_startPosition == null) { _startPosition = _targetCamera.transform.position; } _targetCamera.transform.position = forward ? MovePosition : (Vector3)_startPosition; } }