當前位置: 首頁>>代碼示例>>C#>>正文


C# AstarSerializer.DeserializeUserConnections方法代碼示例

本文整理匯總了C#中Pathfinding.AstarSerializer.DeserializeUserConnections方法的典型用法代碼示例。如果您正苦於以下問題:C# AstarSerializer.DeserializeUserConnections方法的具體用法?C# AstarSerializer.DeserializeUserConnections怎麽用?C# AstarSerializer.DeserializeUserConnections使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Pathfinding.AstarSerializer的用法示例。


在下文中一共展示了AstarSerializer.DeserializeUserConnections方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: DeserializeGraphsPart

        /** Deserializes all graphs and also user connections \deprecated */
        public void DeserializeGraphsPart(AstarSerializer serializer)
        {
            if (serializer.error != AstarSerializer.SerializerError.Nothing) {
                data_backup = (serializer.readerStream.BaseStream as System.IO.MemoryStream).ToArray ();
                Debug.Log ("Error encountered : "+serializer.error+"\nWriting data to AstarData.data_backup");
                graphs = new NavGraph[0];
                return;
            }

            try {
                int count1 = serializer.readerStream.ReadInt32 ();
                int count2 = serializer.readerStream.ReadInt32 ();

                if (count1 != count2) {
                    Debug.LogError ("Data is corrupt ("+count1 +" != "+count2+")");
                    graphs = new NavGraph[0];
                    return;
                }

                NavGraph[] _graphs = new NavGraph[count1];
                //graphs = new NavGraph[count1];

                for (int i=0;i<_graphs.Length;i++) {

                    if (!serializer.MoveToAnchor ("Graph"+i)) {
                        Debug.LogError ("Couldn't find graph "+i+" in the data");
                        Debug.Log ("Logging... "+serializer.anchors.Count);
                        foreach (KeyValuePair<string,int> value in serializer.anchors) {
                            Debug.Log ("KeyValuePair "+value.Key);
                        }
                        _graphs[i] = null;
                        continue;
                    }
                    string graphType = serializer.readerStream.ReadString ();

                    graphType = graphType.Replace ("ListGraph","PointGraph");

                    Guid guid = new Guid (serializer.readerStream.ReadString ());

                    //Search for existing graphs with the same GUID. If one is found, that means that we are loading another version of that graph
                    //Use that graph then and just load it with some new settings
                    NavGraph existingGraph = GuidToGraph (guid);

                    if (existingGraph != null) {
                        _graphs[i] = existingGraph;
                        //Replace
                        //graph.guid = new System.Guid ();
                        //serializer.loadedGraphGuids[i] = graph.guid.ToString ();
                    } else {
                        _graphs[i] = CreateGraph (graphType);
                    }

                    NavGraph graph = _graphs[i];

                    if (graph == null) {
                        Debug.LogError ("One of the graphs saved was of an unknown type, the graph was of type '"+graphType+"'");
                        data_backup = data;
                        graphs = new NavGraph[0];
                        return;
                    }

                    _graphs[i].guid = guid;

                    //Set an unique prefix for all variables in this graph
                    serializer.sPrefix = i.ToString ();
                    serializer.DeSerializeSettings (graph,active);
                }

                serializer.SetUpGraphRefs (_graphs);

                for (int i=0;i<_graphs.Length;i++) {

                    NavGraph graph = _graphs[i];

                    if (serializer.MoveToAnchor ("GraphNodes_Graph"+i)) {
                        serializer.mask = serializer.readerStream.ReadInt32 ();
                        serializer.sPrefix = i.ToString ()+"N";
                        serializer.DeserializeNodes (graph,_graphs,i,active);
                        serializer.sPrefix = "";
                    }

                    //Debug.Log ("Graph "+i+" has loaded "+(graph.nodes != null ? graph.nodes.Length.ToString () : "null")+" nodes");

                }

                userConnections = serializer.DeserializeUserConnections ();

                //Remove null graphs
                List<NavGraph> tmp = new List<NavGraph>(_graphs);
                for (int i=0;i<_graphs.Length;i++) {
                    if (_graphs[i] == null) {
                        tmp.Remove (_graphs[i]);
                    }
                }

                graphs = tmp.ToArray ();
            } catch (System.Exception e) {
                data_backup = (serializer.readerStream.BaseStream as System.IO.MemoryStream).ToArray ();
                Debug.LogWarning ("Deserializing Error Encountered - Writing data to AstarData.data_backup:\n"+e.ToString ());
//.........這裏部分代碼省略.........
開發者ID:rmkeezer,項目名稱:fpsgame,代碼行數:101,代碼來源:AstarData.cs


注:本文中的Pathfinding.AstarSerializer.DeserializeUserConnections方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。