109 lines
3.2 KiB
C#
109 lines
3.2 KiB
C#
using System;
|
|
using NBC;
|
|
using NBC.Entitas;
|
|
|
|
namespace NBF.Fishing2
|
|
{
|
|
public static class MapHelper
|
|
{
|
|
#region Map
|
|
|
|
/// <summary>
|
|
/// 开始进入地图
|
|
/// </summary>
|
|
public static async FTask<int> EnterMap(int mapId, long roomId = 0)
|
|
{
|
|
try
|
|
{
|
|
var root = App.Main;
|
|
var response = (Map2C_EnterMapResponse)await Net.Call(new C2Map_EnterMapRequest()
|
|
{
|
|
MapId = mapId,
|
|
RoomId = roomId
|
|
});
|
|
Log.Info($"进入地图请求返回={response.ErrorCode}");
|
|
//如果有房间
|
|
if (roomId > 0)
|
|
{
|
|
//加入房间并请求获取房间数据
|
|
}
|
|
|
|
// 等待场景切换完成
|
|
await root.GetComponent<ObjectWait>().Wait<Wait_SceneChangeFinish>();
|
|
Log.Info($"等待场景切换结束");
|
|
await root.EventComponent.PublishAsync(new EnterMapFinish());
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.Error(e);
|
|
return ErrorCode.Error;
|
|
}
|
|
|
|
return ErrorCode.Success;
|
|
}
|
|
|
|
|
|
public static async FTask ChangeMap(int mapId)
|
|
{
|
|
LoadingPanel.Show();
|
|
|
|
var oldMap = App.Main.GetComponent<Map>();
|
|
await oldMap.UnLoadMap();
|
|
|
|
var map = App.Main.AddComponent<Map>();
|
|
map.MapId = mapId;
|
|
await map.LoadMap();
|
|
}
|
|
|
|
public static async FTask CreateRoomTest(int mapId)
|
|
{
|
|
// var roomResponse = (Map2C_CreateRoomResponse)await Net.Call(new C2Map_CreateRoomRequest()
|
|
// {
|
|
// MapId = mapId
|
|
// });
|
|
// Log.Info($"创建房间返回 Code={roomResponse.RoomCode} 房间玩家数量={roomResponse.Units.Count}");
|
|
//
|
|
// //执行进入房间
|
|
// var roomResponse2 = (G2C_EnterRoomResponse)await Net.Call(new C2G_EnterRoomRequest()
|
|
// {
|
|
// RoomCode = roomResponse.RoomCode
|
|
// });
|
|
// Log.Info($"进入房间返回 Code={roomResponse2.RoomCode} 房间玩家数量={roomResponse2.Units.Count}");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 卸载旧场景
|
|
/// </summary>
|
|
/// <param name="self"></param>
|
|
public static async FTask UnLoadMap(this Map self)
|
|
{
|
|
await FTask.CompletedTask;
|
|
}
|
|
|
|
public static async FTask LoadMap(this Map self)
|
|
{
|
|
var sceneName = "Map99";
|
|
//加载场景==
|
|
await SceneHelper.LoadScene(sceneName);
|
|
self.CreteSelfMapUnit();
|
|
await self.LoadAllUnit();
|
|
FishingPanel.Show();
|
|
|
|
// 通知等待场景切换的协程
|
|
App.Main.GetComponent<ObjectWait>().Notify(new Wait_SceneChangeFinish());
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Unit
|
|
/// <summary>
|
|
/// 加载所有unit单位
|
|
/// </summary>
|
|
/// <param name="self"></param>
|
|
public static async FTask LoadAllUnit(this Map self)
|
|
{
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
} |