private IEnumerator TransforToPointCor(TransforPointIndex index, float blackScreenTime, Action <bool> setFinished) { setFinished(false); var pos = TransforPoints.Main.GetTransforPoint(index); Time.timeScale = 0; ColorScreen.Main.SetColor(Color.black, blackScreenTime); yield return(new WaitForSecondsRealtime(blackScreenTime)); var ppcs = PlayerPropertyCrossScene.Main; SceneManager.LoadScene(index.sceneName); yield return(null); PlayerController.SpawnPos(pos); yield return(null); if (ppcs != null) { PlayerPropertyCrossScene.Main = ppcs; } CameraPos.main.Position = PlayerController.Main.PositionWithEdgeCut; setFinished(true); ColorScreen.Main.SetColor(new Color(0, 0, 0, 0), blackScreenTime); yield return(new WaitForSecondsRealtime(blackScreenTime)); Time.timeScale = 1; yield break; }
public Func <bool> TransforToPoint(TransforPointIndex index, float blackScreenTime) { bool finished = false; StartCoroutine(TransforToPointCor(index, blackScreenTime, (b) => finished = b)); return(() => finished); }
public void Awake() { TransforPoints.Main.go = transform.Find("BornPlace").gameObject; bornIndex = TransforPoints.Main.AddList(); originPos = Position; sound = GetComponentInChildren <AudioSource>(); StartCoroutine(playSound()); }
public TransforPointIndex AddList() { var sceneName = go.scene.name; var tpi = new TransforPointIndex(0, go.scene.name); if (!map.ContainsKey(sceneName)) { map.Add(sceneName, new List <Vector2>()); } var index = map[sceneName].Count; map[sceneName].Add(VectorUtils.V32(go.transform.position)); return(new TransforPointIndex(index, sceneName)); }
private static IEnumerator process(TransforPointIndex originBorn, AnimationCurve pop, float popTime) { ColorScreen.Main.SetColor(Color.black, 0); var getFinished = SceneTransforer.Main.TransforToPoint(originBorn, 1); yield return(new WaitUntil(getFinished)); PlayerProperty.Main.born = originBorn; yield return(new WaitForSeconds(1)); Func <bool> xoCtrlConnected = () => { var names = Input.GetJoystickNames(); return(names.Length != 0 && names[0] != ""); }; var path = xoCtrlConnected() ? gamepadPath : keyboardPath; CameraSprite ctrlSprite = new CameraSprite("CtrlPadUI", path, Vector2.right); var originScale = ctrlSprite.transform.localScale; Func <float> getScale = () => ctrlSprite.transform.localScale.x / originScale.x; Action <float> setScale = (f) => ctrlSprite.transform.localScale = originScale * f; ClassRef <float> scaleRef = new ClassRef <float>(setScale, getScale); Time.timeScale = 0; scaleRef.set(0); float timeCount = 0; while (timeCount < 1) { yield return(null); timeCount += Time.unscaledDeltaTime / popTime; timeCount = Mathf.Clamp01(timeCount); scaleRef.set(pop.Evaluate(timeCount)); } yield return(new WaitUntil(() => Input.anyKey)); var s = getScale(); timeCount = 0; while (timeCount < 1) { yield return(null); timeCount += Time.unscaledDeltaTime / 0.3f; timeCount = Mathf.Clamp01(timeCount); scaleRef.set(Mathf.Lerp(s, 0, timeCount)); } ctrlSprite.Destroy(); Time.timeScale = 1; }
public Vector2 GetTransforPoint(TransforPointIndex index) { return(map[index.sceneName][index.index]); }