Example #1
0
    void InstantiateEffect(AE_EffectAnimatorProperty effect, bool returnIfCreatedInstance = false)
    {
        if (effect.Prefab == null)
        {
            return;
        }
        // if (returnIfCreatedInstance && effect.CurrentInstance!= null && GameObject.Find(effect.CurrentInstance.name)) return;

        if (effect.BonePosition != null && effect.BoneRotation != null)
        {
            effect.CurrentInstance = Instantiate(effect.Prefab, effect.BonePosition.position, effect.BoneRotation.rotation);
        }
        else
        {
            effect.CurrentInstance = Instantiate(effect.Prefab);
        }

        effect.CurrentInstance.transform.SetParent(effectPool.transform);

        if (effect.TargetAnimation != null)
        {
            effect.CurrentInstance.GetComponent <Animator>().runtimeAnimatorController = effect.TargetAnimation;
        }

        if (Bow != null)
        {
            var setMeshToEffect = effect.CurrentInstance.GetComponent <AE_SetMeshToEffect>();
            if (setMeshToEffect != null && setMeshToEffect.MeshType == AE_SetMeshToEffect.EffectMeshType.Bow)
            {
                setMeshToEffect.Mesh = Bow;
            }
        }

        if (Arrow != null)
        {
            var setMeshToEffect = effect.CurrentInstance.GetComponent <AE_SetMeshToEffect>();
            if (setMeshToEffect != null && setMeshToEffect.MeshType == AE_SetMeshToEffect.EffectMeshType.Arrow)
            {
                setMeshToEffect.Mesh = Arrow;
            }
        }


        if (HUE > -0.9f)
        {
            UpdateColor(effect);
        }

        if (effect.DestroyTime > 0.001f)
        {
            Destroy(effect.CurrentInstance, effect.DestroyTime);
        }
    }
Example #2
0
    private void UpdateColor(AE_EffectAnimatorProperty effect)
    {
        var settingColor = effect.CurrentInstance.GetComponent <AE_EffectSettingColor>();

        if (settingColor == null)
        {
            settingColor = effect.CurrentInstance.AddComponent <AE_EffectSettingColor>();
        }
        var hsv = AE_ColorHelper.ColorToHSV(settingColor.Color);

        hsv.H = HUE;
        settingColor.Color = AE_ColorHelper.HSVToColor(hsv);
    }