public static void FillInstance(Transform parent, LightingEffectResHandle node, LightingEffectResHandleInstance instance)
    {
        if (LightingEffectResHandle.isNullOrEmpry(node))
        {
            return;
        }

        if (null == instance)
        {
            return;
        }
        if (instance.Valid)
        {
            return;
        }

        instance.m_EffectID     = node.EffectID;
        instance.m_effectConfig = node.effectConfig;


        instance.m_effectPrefab            = node.prefabResNode.InstanceMainRes();
        instance.m_AttackGroup             = instance.m_effectPrefab.GetComponent <AttackCollisionGroup>();
        instance.m_effect_ReplaceAnimation = instance.m_effectPrefab.GetComponent <Effect_ReplaceAnimation>();
        instance.m_effect_CameraAnimation  = instance.m_effectPrefab.GetComponent <Effect_CameraAnimation>();
        instance.m_effectNode = instance.m_effectPrefab.GetComponent <EffectNode>();
        if (instance.m_effectNode)
        {
            instance.m_effectNode.isStaticEffect = false;
            instance.m_effectNode.PlayOnAwake    = false;
            instance.m_effectNode.Init();
            instance.m_effectNode.StopEffect();
        }

        instance.m_effectPrefabTransform = instance.m_effectPrefab.transform;
        instance.m_effectPrefabTransform.SetParent(parent);
        instance.m_effectPrefabTransform.position = Vector3.one * 999.0f;
        instance.m_effectPrefab.name = node.prefabResNode.AssetName + "(effect" + node.EffectID + ")";
    }