public EffectAnimatorObserver GetBuildCompleteEffect(Transform parentObject) { EffectAnimatorObserver effectAnimatorObserver = this.buildCompleteEffects.FirstOrDefault((EffectAnimatorObserver x) => x.IsStoped()); if (null == effectAnimatorObserver) { GameObject gameObject = AssetDataMng.Instance().LoadObject("Cutscenes/NewFX3", null, true) as GameObject; if (null == gameObject) { global::Debug.LogError("NOT FOUND : Cutscenes/NewFX3"); } else { effectAnimatorObserver = UnityEngine.Object.Instantiate <GameObject>(gameObject).GetComponent <EffectAnimatorObserver>(); effectAnimatorObserver.transform.parent = base.transform; effectAnimatorObserver.transform.localScale = Vector3.one; effectAnimatorObserver.transform.position = parentObject.position; this.buildCompleteEffects.Add(effectAnimatorObserver); Resources.UnloadUnusedAssets(); } } else { effectAnimatorObserver.transform.position = parentObject.position; } return(effectAnimatorObserver); }
private IEnumerator OpenAnimation(Action callback) { GUICameraControll farmCamera = FarmRoot.Instance.Camera.GetComponent <GUICameraControll>(); Vector3 position = base.transform.position; position.y -= FarmRoot.Instance.gameObject.transform.localPosition.y; yield return(base.StartCoroutine(farmCamera.MoveCameraToLookAtPoint(position, 0.2f))); bool isEffectEnd = false; EffectAnimatorObserver effect = FarmRoot.Instance.GetBuildCompleteEffect(base.transform); if (null != effect) { EffectAnimatorEventTime component = effect.GetComponent <EffectAnimatorEventTime>(); component.SetEvent(0, delegate { isEffectEnd = true; }); effect.Play(); } while (!isEffectEnd) { yield return(null); } if (callback != null) { callback(); } yield break; }
public void BuildCompleteEffect() { SoundMng.Instance().TryPlaySE("SEInternal/Farm/se_202", 0f, false, true, null, -1); FarmRoot instance = FarmRoot.Instance; EffectAnimatorObserver buildCompleteEffect = instance.GetBuildCompleteEffect(base.transform); if (null != buildCompleteEffect) { EffectAnimatorEventTime component = buildCompleteEffect.GetComponent <EffectAnimatorEventTime>(); component.SetEvent(0, new Action(this.BuildEffect)); buildCompleteEffect.Play(); } }