107 lines
2.9 KiB
C#
107 lines
2.9 KiB
C#
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<MapUnitInfo> _units;
|
|
private List<FPlayer> _players = new List<FPlayer>();
|
|
private static Fishing _instance;
|
|
|
|
public static Fishing Instance
|
|
{
|
|
get
|
|
{
|
|
_instance ??= new Fishing();
|
|
|
|
return _instance;
|
|
}
|
|
}
|
|
|
|
|
|
public async FTask<bool> 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<MapUnitInfo> units)
|
|
{
|
|
_units = units;
|
|
var sceneName = "Map1";
|
|
//加载场景==
|
|
await SceneHelper.LoadScene(sceneName);
|
|
LoadAllUnit();
|
|
|
|
|
|
// var oldMap = Game.Main.GetComponent<GenericPoser.Map>();
|
|
// await oldMap.UnLoadMap();
|
|
//
|
|
// var map = Game.Main.AddComponent<GenericPoser.Map>();
|
|
// map.MapId = mapId;
|
|
// map.RoomCode = roomCode;
|
|
// map.SelfId = Game.SelfId;
|
|
// foreach (var mapUnitInfo in units)
|
|
// {
|
|
// map.CreateMapUnit(mapUnitInfo);
|
|
// }
|
|
//
|
|
// await map.LoadMap();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载所有unit单位
|
|
/// </summary>
|
|
public void LoadAllUnit()
|
|
{
|
|
foreach (var unit in _units)
|
|
{
|
|
CreateUnit(unit);
|
|
}
|
|
//
|
|
// var cameraComponent = self.Scene.GetComponent<CameraComponent>();
|
|
// if (cameraComponent != null)
|
|
// {
|
|
// cameraComponent.Mode = CameraShowMode.FPP;
|
|
// }
|
|
}
|
|
|
|
private void CreateUnit(MapUnitInfo unit)
|
|
{
|
|
var gameObject = PrefabsHelper.CreatePlayer(SceneSettings.Instance.Node);
|
|
var player = gameObject.GetComponent<FPlayer>();
|
|
player.InitData(unit);
|
|
_players.Add(player);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 卸载旧场景
|
|
/// </summary>
|
|
public async FTask UnLoadMap()
|
|
{
|
|
await FTask.CompletedTask;
|
|
}
|
|
}
|
|
} |