public void RefreshData()
        {
            //刷新object
            var references = GameObjectUtilities.FindSceneAllGameObjects <ReferenceObject>();

            GUIDdic.Clear();
            AllDic.Clear();
            References.Clear();
            foreach (var refobj in references)
            {
                ReferenceObject conflitObj = null;
                if (GUIDdic.ContainsKey(refobj.Data.GUID))
                {
                    conflitObj = GUIDdic[refobj.Data.GUID];
                }
                else
                {
                    GUIDdic[refobj.Data.GUID] = refobj;
                }
                AllDic[refobj] = conflitObj;
            }

            Regex r = new Regex(@"GUID:\s*(\S*)\s*DyamicName:\s*(\S*)\s*Dynamic:\s*(\S*)\s*TypeName:", RegexOptions.IgnoreCase);

            //刷新引用
            foreach (var asset in TestAssets)
            {
                if (asset)
                {
                    var             filepath       = PathTools.Asset2File(AssetDatabase.GetAssetPath(asset));
                    string          allFileContent = FileTools.ReadAllText(filepath);
                    MatchCollection ms             = r.Matches(allFileContent);
                    for (int i = 0; i < ms.Count; i++)
                    {
                        Match  m           = ms[i];
                        String guid1       = m.Groups[1].ToString();
                        String dynaimcName = m.Groups[2].ToString();
                        String dynaimc     = m.Groups[3].ToString();
                        if (guid1.IsNOTNullOrEmpty())
                        {
                            bool dyn = dynaimc == "1"?true:false;
                            References.Add(new SceneReference()
                            {
                                Identity = guid1, Dynamic = dyn, DyamicName = dynaimcName
                            });
                        }
                    }
                }
            }
        }
Exemple #2
0
    public void CollectRefrence()
    {
        Refrences = GameObjectUtilities.FindSceneAllGameObjects <ReferenceObject>();
        dic.Clear();
        foreach (var refobj in Refrences)
        {
            if (dic.ContainsKey(refobj.Data.GUID))
            {
                LogConflict(dic[refobj.Data.GUID], refobj);
            }
            else
            {
                dic.Add(refobj.Data.GUID, refobj);
            }
        }
        DynamicReference dynamicRef = GetComponent <DynamicReference>();

        if (dynamicRef)
        {
            dynamicRef.Sync2Root();
        }
    }