/// <summary> /// 蓄力---->按下begin,抬起通信release,end /// </summary> /// <param name="skillData"></param> private void ToCastAccumulationSkill(SkillData skillData, bool isdown) { uint entityId = (uint)m_ISpacecraftSkillProperty.EntityId(); uint skillId = (uint)skillData.Id; SkillRPCNet skillRPC = m_Context.GetObject <SkillRPCNet>(); if (skillRPC == null) { return; } if (isdown) //按下 { Leyoutech.Utility.DebugUtility.Log("蓄力", " 按下"); AccumulationSkill skillA = new AccumulationSkill(); skillA.AccumulationSkillBegin = new global::Crucis.Protocol.AccumulationSkillBegin(); skillA.AccumulationSkillBegin.CasterId = entityId; skillA.AccumulationSkillBegin.SkillId = skillId; skillRPC.CreatListenerCastAccumulationSkill(entityId, skillId); skillRPC.CastAccumulationSkillWright(entityId, skillId, skillA); } else //抬起 { Leyoutech.Utility.DebugUtility.Log("蓄力", " 抬起"); Vector3 direction = Vector3.zero; List <Crucis.Protocol.TargetInfo> targetList = m_ISpacecraftSkillProperty.GetPerceptronTarget().GetCurrentTargetInfos(false, out direction, true, skillData.BaseData.Value.TagercalculationType); AccumulationSkill skillA = new AccumulationSkill(); skillA.AccumulationSkillEnd = new global::Crucis.Protocol.SkillSelectTargetInfo(); skillA.AccumulationSkillEnd.CasterId = (uint)m_ISpacecraftSkillProperty.EntityId(); skillA.AccumulationSkillEnd.SkillId = (uint)skillData.Id; skillA.AccumulationSkillEnd.TargetList.Add(targetList); MainCameraComponent mainCamComponent = m_Context.GetObject <MainCameraComponent>(); float d = skillData.BaseData.Value.MaxDistance; //* SceneController.SKILL_PRECISION; Crucis.Protocol.Vec4 vec4 = GetCameraQuaternion(mainCamComponent, direction, d); skillA.AccumulationSkillEnd.Quat = vec4; skillRPC.CastAccumulationSkillWright(entityId, skillId, skillA); if (skillData.BaseData.Value.IsNeedTarget && (targetList == null || targetList.Count == 0)) { StageType = SkillStageType.None; } } }
/// <summary> /// 蓄力技能流写入 /// </summary> /// <param name="entityId"></param> /// <param name="skill_id_"></param> /// <param name="request"></param> public void CastAccumulationSkillWright(uint entityId, uint skill_id_, AccumulationSkill request) { Leyoutech.Utility.DebugUtility.Log("SkillRPCNet", " 蓄力技能写入" + this.GetHashCode()); m_CastAccumulationSkillStream?.Wright(request); }