/// <summary> /// 处理用户的输入 /// </summary> /// <param name="c2sMSG"></param> internal void HandleBattleUserInputC2S(BattleUserInputC2S c2sMSG) { BattleUserInputS2C s2cMSG = new BattleUserInputS2C(); s2cMSG.CMD = c2sMSG; Broadcast(1500, s2cMSG); //定一个间隔时间 66ms进行广播一次 100ms广播一次 }
/// <summary> /// 处理用户传输过来的输入 /// </summary> /// <param name="obj"></param> private void HandleBattleUserInputC2S(BufferEntity request) { BattleUserInputC2S c2sMSG = ProtobufHelper.FromBytes <BattleUserInputC2S>(request.proto); RoomEntity roomEntity = RoomManager.Instance.Get(c2sMSG.RoomID); if (roomEntity != null) { roomEntity.HandleBattleUserInputC2S(c2sMSG); } }
//生成特效 public void SpawnEffect(string key) { GameObject effect = ResManager.Instance.LoadEffect(playerInfo.HeroID, key); effect.transform.position = transform.position; effect.transform.eulerAngles = transform.eulerAngles; effect.gameObject.SetActive(true); EConfig eConfig = effect.transform.GetComponent <EConfig>(); BattleUserInputC2S skillCMD = playerCtrl.playerFSM.skillCMD.CMD; //playerCtrl.OnSkillTrriger 技能触发回调 由释放者 eConfig.Init(skillCMD.RolesID, skillCMD.LockTag, skillCMD.LockID, transform.forward, transform.position, playerCtrl.OnSkillTrriger); }
void SendInputCMD(KeyCode keyCode) { BattleUserInputC2S c2sMSG = new BattleUserInputC2S(); c2sMSG.RolesID = PlayerModel.Instance.rolesInfo.RolesID; c2sMSG.RoomID = PlayerModel.Instance.roomInfo.ID; c2sMSG.Key = keyCode.GetHashCode(); Ray ray; RaycastHit hit; ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit)) { c2sMSG.MousePosition = hit.point.ToV3Info(); if (lockTransform != null) { c2sMSG.LockID = lockObjectID; c2sMSG.LockTag = lockTransform.tag; } } BufferFactory.CreateAndSendPackage(1500, c2sMSG); }