コード例 #1
0
ファイル: EffectManager.cs プロジェクト: Ziden/Samurai
    private IEnumerator PlayRoutine(EffectConfig cfg)
    {
        var animObject = Instantiate(this.gameObject);
        var fx         = animObject.GetComponent <EffectManager>();
        var fxAnim     = fx.GetComponent <Animator>();

        var offsetv = cfg.offset;

        fxAnim.Play(cfg.animationName);

        if (cfg.attachToSprite)
        {
            animObject.transform.SetParent(cfg.targetTransform);
        }

        if (cfg.flip)
        {
            TransformUtils.Flip(animObject.transform);
        }

        if (cfg.align == EffectAlign.CENTER)
        {
            animObject.transform.position = cfg.targetTransform.position + offsetv;
        }
        else if (cfg.align == EffectAlign.BOTTOM)
        {
            var trans = cfg.targetTransform;
            var targetObjectSprite = trans.Find("Animation").GetComponent <SpriteRenderer>();
            var animationSprite    = animObject.GetComponent <SpriteRenderer>();
            var spriteBottom       = trans.position.y - targetObjectSprite.bounds.size.y / 2;
            animObject.transform.position = new Vector3(trans.position.x, spriteBottom) + offsetv;
        }

        yield return(new WaitForSeconds(GetClip(cfg.animationName).length));

        Destroy(animObject);
    }