43 lines
988 B
C#
43 lines
988 B
C#
using Fantasy;
|
|
using Fantasy.Async;
|
|
using Fantasy.Entitas.Interface;
|
|
using Unity.Mathematics;
|
|
|
|
namespace NB.Map;
|
|
|
|
public class MapUnitSystemDestroySystem : DestroySystem<MapUnit>
|
|
{
|
|
protected override void Destroy(MapUnit self)
|
|
{
|
|
self.MapId = 0;
|
|
self.Position = float3.zero;
|
|
self.Rotation = float4.zero;
|
|
self.GateRouteId = 0L;
|
|
}
|
|
}
|
|
|
|
public static class MapUnitSystem
|
|
{
|
|
public static async FTask<uint> EnterMap(this MapUnit self, int mapId)
|
|
{
|
|
var mapManageComponent = self.Scene.GetComponent<MapManageComponent>();
|
|
|
|
var map = mapManageComponent.Get(mapId);
|
|
if (map == null)
|
|
{
|
|
return ErrorCode.MapIdError;
|
|
}
|
|
|
|
// 同步客户端
|
|
self.Scene.NetworkMessagingComponent.SendInnerRoute(self.GateRouteId, new Map2C_ChangeMap()
|
|
{
|
|
Node = 1,
|
|
MapId = mapId
|
|
});
|
|
|
|
await FTask.CompletedTask;
|
|
|
|
|
|
return ErrorCode.Successful;
|
|
}
|
|
} |