Exemplo n.º 1
0
    public override void OnInspectorGUI()
    {
        if (GUILayout.Button("Load Excel"))
        {
            if (EditorUtility.DisplayDialog("读取配置表", "确定要导入这个配置表吗 ?   ", "OK", "Cancel"))
            {
                if (LoadXlsx())
                {
                    RefineTable();

                    MainStaticDataCenter dataCenter = AssetDatabase.LoadAssetAtPath <MainStaticDataCenter>(MainStaticDataCenter.prefabPath);
                    if (CheckTable(dataCenter))
                    {
                        EditorUtility.DisplayDialog("读取配置表", "读取成功 ", "OK");
                    }
                    else
                    {
                        EditorUtility.DisplayDialog("配置表检查出错误", "详情请看Console窗口", "OK");
                    }
                    EditorUtility.SetDirty(target);
                    AssetDatabase.SaveAssets();
                }
                else
                {
                    EditorUtility.DisplayDialog("读取配置表失败", "详情请看Console窗口", "OK");
                }
            }
        }
        if (GUILayout.Button("Report Path"))
        {
            Debug.Log("Report Path Begin");
            var s = ReportPath();
            foreach (var str in s)
            {
                Debug.Log(str);
            }
            Debug.Log("Report Path End");
        }
        if (GUILayout.Button("Search"))
        {
            if (!Search())
            {
                EditorUtility.DisplayDialog("搜索失败", "没有找到相应数据,请确认id是否正确", "OK");
            }
        }
        foldout = EditorGUILayout.Foldout(foldout, foldOutContent);
        if (foldout)
        {
            base.OnInspectorGUI();
        }
    }
Exemplo n.º 2
0
    public override bool Check(MainStaticDataCenter database)
    {
        bool res = InitSuccess;

        foreach (T t in datalist)
        {
            List <string> errList  = new List <string>();
            bool          localRes = t.Check(errList, database);
            if (!localRes)
            {
                Debug.LogErrorFormat("{0}配置表错误, Id={1}", name, t.GetIdentifier());
                foreach (var err in errList)
                {
                    Debug.LogErrorFormat("错误详情:{0}", err);
                }
            }
            res &= localRes;
        }

        res &= base.Check(database);

        return(res);
    }
Exemplo n.º 3
0
 public override bool CheckTable(MainStaticDataCenter dataCenter)
 {
     return(script.Check(dataCenter));
 }
Exemplo n.º 4
0
 abstract public bool CheckTable(MainStaticDataCenter dataCenter);
Exemplo n.º 5
0
 public virtual bool Check(MainStaticDataCenter database)
 {
     return(true);
 }
Exemplo n.º 6
0
 public override bool Check(List <string> s, MainStaticDataCenter database)
 {
     return(base.Check(s, database));
 }
Exemplo n.º 7
0
    public override bool Check(MainStaticDataCenter database)
    {
        HashSet <TK> keySet = new HashSet <TK>();
        bool         res    = true;

        foreach (T item in datalist)
        {
            if (keySet.Contains(item.Id))
            {
                Debug.LogErrorFormat("{0}配置表ID重复, Id={1}", name, item.Id);
                res &= false;
            }
            keySet.Add(item.Id);
        }
        InitSuccess = res;

        /*
         * bool pathAvailable = true;
         #if UNITY_EDITOR
         * string test = "Assets/GameRoot/Level/Map/WldfCt-001-01/WldfCt-001-01";
         * HashSet<string> assetPath = new HashSet<string>();
         * ReportAllAssetsPath(assetPath);
         * foreach (var s in assetPath)
         * {
         *  if (string.IsNullOrEmpty(s))
         *  {
         *      continue;
         *  }
         *  if (System.IO.Directory.Exists(s))
         *  {
         *      LogMgr.ErrorParam(LogMgr.Section.Editor, "asset is directory:{0} in table {1}", s, name);
         *      continue;
         *  }
         *  if(s==test)
         *  {
         *      LogMgr.ErrorParam(LogMgr.Section.Editor, "test found:{0}", name);
         *  }
         *  Object o = UnityEditor.AssetDatabase.LoadAssetAtPath<Object>(s);
         *  if (o == null)
         *  {
         *      pathAvailable = false;
         *      LogMgr.ErrorParam(LogMgr.Section.Editor, "asset not exist:{0} in table {1}", s, name);
         *      continue;
         *  }
         *  var d = UnityEditor.AssetDatabase.GetDependencies(s);
         *  foreach (var sd in d)
         *  {
         *      if (System.IO.Directory.Exists(sd))
         *      {
         *          LogMgr.ErrorParam(LogMgr.Section.Editor, "asset is directory:{0} in table {1} dep {2}", sd, name, s);
         *          continue;
         *      }
         *      if (sd == test)
         *      {
         *          LogMgr.ErrorParam(LogMgr.Section.Editor, "test found:{0} dep {1}", name, s);
         *      }
         *      Object o2 = UnityEditor.AssetDatabase.LoadAssetAtPath<Object>(sd);
         *      if (o2 == null)
         *      {
         *          pathAvailable = false;
         *          LogMgr.ErrorParam(LogMgr.Section.Editor, "asset not exist:{0} in table {1} dep {2}", sd, name, s);
         *      }
         *  }
         * }
         #endif
         */
        return(base.Check(database) && res /* && pathAvailable*/);
    }
Exemplo n.º 8
0
 public virtual bool Check(List <string> s, MainStaticDataCenter database)
 {
     return(true);
 }