コード例 #1
0
            internal void InitNexts(SceneGraphMap map)
            {
                nexts.Clear();
                current_entries.Clear();
                var list = new List <SceneGraphNode>(1);

                if (Data.connect != null)
                {
                    this.current_entries.AddRange(Data.connect);
                    foreach (var next in Data.connect)
                    {
                        var ss = RPGServerBattleManager.Instance.GetSceneAsCache(Data.zone_template_id);
                        if (ss != null && ss.Regions.TryFind(e => e.Name == next.from_flag_name, out var from_rg))
                        {
                            next.from_flag_pos = new Vector3(from_rg.X, from_rg.Y, from_rg.Z);
                        }
                        else
                        {
                            throw new Exception($"Currernt Link Data Error : MapID={MapID} : {next}");
                        }
                        var next_node = map.GetNode(next.to_map_id);
                        if (next_node != null)
                        {
                            if (!nexts.ContainsKey(next_node.MapID))
                            {
                                var ds = RPGServerBattleManager.Instance.GetSceneAsCache(next_node.Data.zone_template_id);
                                if (ds != null && ds.Regions.TryFind(e => e.Name == next.to_flag_name, out var next_rg))
                                {
                                    next.to_flag_pos = new Vector3(next_rg.X, next_rg.Y, next_rg.Z);
                                    nexts.Add(next_node.MapID, next);
                                }
                                else
                                {
                                    //throw new Exception($"Next Link Data Error : MapID={MapID} : {next}");
                                    log.Error($"Next Link Data Error : MapID={MapID} : {next}");
                                }
                            }
                            list.Add(next_node);
                        }
                        else
                        {
                            log.Error($"Next Link Data Error : MapID={MapID} : {next}");
                        }
                    }
                }
                this.nexts_array = list.ToArray();
            }
コード例 #2
0
 public MapSceneGrapAstar(MapTemplateData[] nodes)
 {
     this.terrain = new SceneGraphMap(nodes);
     base.InitGraph(terrain);
 }