/// <summary> /// 传入角色单元的ID 得到服务器的ID /// </summary> /// <param name="self"></param> /// <param name="key"></param> /// <returns></returns> public static async Task <long> Get(this LocationProxyComponent self, long key) { Session session = Game.Scene.GetComponent <NetInnerComponent>().Get(self.LocationAddress); ObjectGetResponse response = (ObjectGetResponse)await session.Call(new ObjectGetRequest() { Key = key }); return(response.InstanceId); }
public static async ETTask <long> Get(this LocationProxyComponent self, long key) { if (key == 0) { throw new Exception($"get location key 0"); } ObjectGetResponse response = (ObjectGetResponse)await MessageHelper.CallActor( StartSceneConfigCategory.Instance.LocationConfig.SceneId, new ObjectGetRequest() { Key = key }); return(response.InstanceId); }
public override async ETTask ObjectGetRequestHandler(Scene scene, ObjectGetRequest request, ObjectGetResponse response, Action reply) { long instanceId = await scene.GetComponent <LocationComponent>().Get(request.Key); if (instanceId == 0) { response.Error = ErrorCode.ERR_ActorLocationNotFound; } response.InstanceId = instanceId; reply(); }
public virtual async ETTask ObjectGetRequestHandler(Scene scene, ObjectGetRequest request, ObjectGetResponse response, Action reply) { }