/// <summary> Apply check value on an asset and its childs.  </summary>
 private static void SetFullCheck(ImpAsset asset, bool value)
 {
     asset.import = value;
     if (asset.childs != null)
     {
         for (int i = 0; i < asset.childs.Length; i++)
         {
             SetFullCheck(asset.childs[i], value);
         }
     }
 }
        /// <summary> Draw an asset and its children. </summary>
        private void DrawAsset(ImpAsset asset)
        {
            //Toggle
            bool temp = GUILayout.Toggle(asset.import, asset.content);

            if (temp != asset.import)
            {
                asset.import = temp;
                RefreshAllCheck();
            }

            //Draw childs
            if (asset.childs != null)
            {
                for (int j = 0; j < asset.childs.Length; j++)
                {
                    DrawAsset(asset.childs[j]);
                }
            }
        }
        /// <summary> Check if the asset and its childs are selected for the import. </summary>
        private static AllCheckState IsFullCheck(ImpAsset asset)
        {
            AllCheckState state = asset.import ? AllCheckState.Check : AllCheckState.Uncheck;

            if (state == AllCheckState.Partial)
            {
                return(AllCheckState.Partial);
            }
            if (asset.childs != null)
            {
                for (int j = 0; j < asset.childs.Length; j++)
                {
                    state = Blend(state, IsFullCheck(asset.childs[j]));
                    if (state == AllCheckState.Partial)
                    {
                        return(AllCheckState.Partial);
                    }
                }
            }
            return(state);
        }