Beispiel #1
0
    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;
    }
Beispiel #2
0
    public Func <bool> TransforToPoint(TransforPointIndex index, float blackScreenTime)
    {
        bool finished = false;

        StartCoroutine(TransforToPointCor(index, blackScreenTime, (b) => finished = b));
        return(() => finished);
    }
Beispiel #3
0
 public void Awake()
 {
     TransforPoints.Main.go = transform.Find("BornPlace").gameObject;
     bornIndex = TransforPoints.Main.AddList();
     originPos = Position;
     sound     = GetComponentInChildren <AudioSource>();
     StartCoroutine(playSound());
 }
Beispiel #4
0
    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));
    }
Beispiel #5
0
    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;
    }
Beispiel #6
0
 public Vector2 GetTransforPoint(TransforPointIndex index)
 {
     return(map[index.sceneName][index.index]);
 }