Пример #1
0
    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);
    }
Пример #2
0
    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;
    }
Пример #3
0
    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();
        }
    }