public static void SetLayer(this GameObject go, string layerName, string layerNameParticles, bool bFileSkillIndicator = false)
    {
        int layer          = LayerMask.NameToLayer(layerName);
        int layerParticles = LayerMask.NameToLayer(layerNameParticles);

        MMGame_Math.SetLayerRecursively(go, layer, layerParticles, bFileSkillIndicator);
    }
    public static void SetLayerRecursively(GameObject go, int layer, bool bFileSkillIndicator)
    {
        if (bFileSkillIndicator && go.CompareTag("SCI"))
        {
            return;
        }
        go.layer = layer;
        int childCount = go.transform.childCount;

        for (int i = 0; i < childCount; i++)
        {
            MMGame_Math.SetLayerRecursively(go.transform.GetChild(i).gameObject, layer, bFileSkillIndicator);
        }
    }
    public static void SetLayerRecursively(GameObject go, int layer, int layerParticles, bool bFileSkillIndicator)
    {
        if (bFileSkillIndicator && go.CompareTag("SCI"))
        {
            return;
        }
        if (go.GetComponent <ParticleSystem>() != null)
        {
            go.layer = layerParticles;
        }
        else
        {
            go.layer = layer;
        }
        int childCount = go.transform.childCount;

        for (int i = 0; i < childCount; i++)
        {
            MMGame_Math.SetLayerRecursively(go.transform.GetChild(i).gameObject, layer, layerParticles, bFileSkillIndicator);
        }
    }
 public static void SetLayer(this GameObject go, int layer, int layerParticles, bool bFileSkillIndicator)
 {
     MMGame_Math.SetLayerRecursively(go, layer, layerParticles, bFileSkillIndicator);
 }