3步开启你的缠论交易导航:告别复杂画图,拥抱智能分析
2026/5/14 6:57:15
在Boss Room项目中,客户端的输入捕获主要由ClientInputSender.cs类负责。该类使用Unity的Input系统在Update()方法中监听各种输入事件:
当检测到有效输入时,会调用RequestAction()方法将输入请求放入队列中等待处理。
输入请求在FixedUpdate()方法中被处理,主要流程如下:
核心方法PerformSkill()是所有输入驱动技能的公共入口,它根据输入类型和技能配置构建ActionRequestData对象。
在构建动作请求时,系统会根据目标类型和上下文信息进行智能处理:
GetActionRequestForTarget()方法处理复杂的目标选择逻辑,包括:
当动作请求数据构建完成后,SendInput()方法将通过ServerPlayActionRpc远程调用将请求发送到服务器:
voidSendInput(ActionRequestDataaction){ActionInputEvent?.Invoke(action);m_ServerCharacter.ServerPlayActionRpc(action);}服务器接收动作请求后,由ServerCharacter.cs和ServerActionPlayer.cs协同处理:
ActionFactory.CreateActionFromData()创建动作实例核心方法PlayAction()处理动作的添加和队列管理:
publicvoidPlayAction(refActionRequestDataaction){if(!action.ShouldQueue&&m_Queue.Count>0&&(m_Queue[0].Config.ActionInterruptible||m_Queue[0].Config.CanBeInterruptedBy(action.ActionID))){ClearActions(false);}varnewAction=ActionFactory.CreateActionFromData(refaction);m_Queue.Add(newAction);if(m_Queue.Count==1){StartAction();}}动作执行由ServerActionPlayer管理,主要流程包括: