using System.Collections.Generic; using Fantasy; using Fantasy.Async; using NBF.Fishing2; using RootMotion.FinalIK; using Log = NBC.Log; namespace NBF { public class Fishing { private List _units; private List _players = new List(); private static Fishing _instance; public static Fishing Instance { get { _instance ??= new Fishing(); return _instance; } } public async FTask Go(int mapId, string roomCode = "") { if (mapId == 0) { Log.Warning("账号没有进入过地图,进入新手引导地图"); mapId = 99; } var root = Game.Main; var response = (G2C_EnterMapResponse)await Net.Call(new C2G_EnterMapRequest() { MapId = mapId, RoomCode = roomCode }); Log.Info($"进入地图请求返回={response.ErrorCode}"); LoadingPanel.Show(); await ChangeMap(response.MapId, response.RoomCode, response.Units); LoadingPanel.Hide(); return true; } public async FTask ChangeMap(int mapId, string roomCode, List units) { _units = units; var sceneName = "Map1"; //加载场景== await SceneHelper.LoadScene(sceneName); LoadAllUnit(); // var oldMap = Game.Main.GetComponent(); // await oldMap.UnLoadMap(); // // var map = Game.Main.AddComponent(); // map.MapId = mapId; // map.RoomCode = roomCode; // map.SelfId = Game.SelfId; // foreach (var mapUnitInfo in units) // { // map.CreateMapUnit(mapUnitInfo); // } // // await map.LoadMap(); } /// /// 加载所有unit单位 /// public void LoadAllUnit() { foreach (var unit in _units) { CreateUnit(unit); } // // var cameraComponent = self.Scene.GetComponent(); // if (cameraComponent != null) // { // cameraComponent.Mode = CameraShowMode.FPP; // } } private void CreateUnit(MapUnitInfo unit) { var gameObject = PrefabsHelper.CreatePlayer(SceneSettings.Instance.Node); var player = gameObject.GetComponent(); player.InitData(unit); _players.Add(player); } /// /// 卸载旧场景 /// public async FTask UnLoadMap() { await FTask.CompletedTask; } } }