// void SyncEnermyMoveAnimation() { if (isMove != animation.IsPlaying("walk")) { EnermyMoveAnimationModel model = new EnermyMoveAnimationModel() { IsMove = !isMove, }; model.SetTime(DateTime.Now); //发送请求到服务器 EnermyController.Instance.SyncEnermyMoveAnimationRequest(this.GUID, model); } isMove = animation.IsPlaying("walk"); }
//同步敌人移动动画 public void SyncEnermyMoveAnimationRequest(string guid, EnermyMoveAnimationModel model) { Dictionary <byte, object> parameters = new Dictionary <byte, object>(); parameters.Add((byte)ParameterCode.SubCode, SubCode.SyncEnermyMoveAnimation); string json = JsonMapper.ToJson(model); parameters.Add((byte)ParameterCode.EnermyMoveAnimationModel, json); parameters.Add((byte)ParameterCode.EnermyGuid, guid); //其它必要参数: parameters.Add((byte)ParameterCode.ChannelID, PhotonEngine.Instance.ChannelId); parameters.Add((byte)ParameterCode.RoleId, PhotonEngine.Instance.role.ID); parameters.Add((byte)ParameterCode.MasterRoleID, PhotonEngine.Instance.masterid); //发送请求 PhotonEngine.Instance.SendRequest(OperationCode.SyncEnermy, parameters); }
// void SyncEnermyMoveAnimationResponse(Dictionary <byte, object> parameters) { //根据guid获取 enermyGo,更新之 string guid = ""; object o = null; parameters.TryGetValue((byte)ParameterCode.EnermyGuid, out o); guid = o.ToString(); Animation anim = null; GameObject enermyGo = null; EnermyController.Instance.enermyGoDict.TryGetValue(guid, out enermyGo); parameters.TryGetValue((byte)ParameterCode.EnermyMoveAnimationModel, out o); EnermyMoveAnimationModel model = new EnermyMoveAnimationModel(); model = JsonMapper.ToObject <EnermyMoveAnimationModel>(o.ToString()); if (enermyGo != null) { anim = enermyGo.GetComponent <Animation>(); } if (anim == null) { return; } DateTime dt = DateTime.Now; if (dt > model.GetTime()) { if (model.IsMove) { anim.Play("walk"); } else { anim.Play("idle"); } } }