Files
Fishing2/Assets/Scripts/Fishing/Fishing.cs

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;
}
}
}