Exemplo n.º 1
0
    //ムービースタート関数
    public void ApplyAnim(GameObject applyObj, string parentAnim_name, List <string> childAnim_name, List <float> childAnim_second,
                          FreezeObj freezeObj = FreezeObj.all, bool canSkip_ = false)
    {
        if (freezeObj == FreezeObj.all)
        {
            canDoDirector = false;
        }
        else if (freezeObj == FreezeObj.applyOnly)
        {
            BaseDirector director = applyObj.GetComponent <BaseDirector>();
            switch (director.GetDirectorType())
            {
            case DirectorType.Character:
                director.AddObserver(charaFreeze);
                break;

            case DirectorType.Camera:
                director.AddObserver(cameraFreeze);
                break;

            case DirectorType.Other:
                director.AddObserver(otherFreeze);
                break;
            }
        }

        ui_Director.TempDestroy();
        if (canSkip_)
        {
            ui_Director.InstanceUI("MovieUI", gameObject);
        }
        animDirector.ApplyAnim(applyObj, parentAnim_name, childAnim_name, childAnim_second, canSkip_);
    }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (target)
        {
            var pos = Vector2.Lerp(target.transform.position, transform.position, speedRatio);
            target.transform.position = new Vector3(pos.x, pos.y, transform.position.z);

            if (Vector2.Distance(target.transform.position, transform.position) < range)
            {
                audioSource.volume = Mathf.Clamp(audioSource.volume - Time.deltaTime / (durationA + durationB), 0, 1);

                if (!emitted)
                {
                    emitted = true;

                    BaseDirector.Get()?.StageClearEffect(true);

                    GetComponentInChildren <ParticleSystem>().Play();
                    target.GetComponentsInChildren <ParticleSystem>().ToList().ForEach(e => e.Play());

                    this.Delay(durationA, () =>
                    {
                        CameraController.Get().Targetter.SetTarget(goalTarget);

                        var achieved = GameDirector.Get(transform)?.pointManager.IsGotAllImportantPoints() ?? false;
                        if (achieved)
                        {
                            this.Delay(durationB, () =>
                            {
                                BaseDirector.Get()?.StageAchieveEffect(true);
                                if (goalSprite)
                                {
                                    goalSprite.GetComponent <Animator>().SetBool("Enabled", true);
                                }
                            });
                        }
                        this.Delay(durationC + (achieved ? durationB : 0), () =>
                        {
                            BaseDirector.Get()?.StageClearEffect(false);
                            BaseDirector.Get()?.StageAchieveEffect(false);
                            GameDirector.Get(transform).EndGame();
                        });
                    });
                }
            }
        }
    }
Exemplo n.º 3
0
    public bool LoadStage(Stage stage)
    {
        if (currentStage != stage)
        {
            SceneSelector.Get().LoadScene(stage.sceneName);
            currentStage = stage;

            BaseDirector.Get()?.StageChangeEffect(true);
            this.Delay(2, () =>
            {
                BaseDirector.Get()?.StageChangeEffect(false);
            });

            return(true);
        }
        return(false);
    }
Exemplo n.º 4
0
 public static StageSelector Get()
 {
     return(BaseDirector.Get().GetComponent <StageSelector>());
 }
Exemplo n.º 5
0
 public static SceneSelector Get()
 {
     return(BaseDirector.Get()?.GetComponent <SceneSelector>());
 }
Exemplo n.º 6
0
 private void Start()
 {
     baseDirector = BaseDirector.Get();
 }