// 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(); }); }); } } } }
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); }
public static StageSelector Get() { return(BaseDirector.Get().GetComponent <StageSelector>()); }
public static SceneSelector Get() { return(BaseDirector.Get()?.GetComponent <SceneSelector>()); }
private void Start() { baseDirector = BaseDirector.Get(); }