private void CreateArea() { switch (mSkillCfg.mTargetType) { case SkillTargetType.Position: { CacheTransform.position = mCastCfg.mTargetPosition; break; } case SkillTargetType.Actor: { break; } } //area类型,1 每过一段时间起效一次 2 经过延迟后直接起效 if (mSkillCfg.mTimer) { if (mSkillCfg.mEffectDelay > 0) { var delayTimer = new DCDurationTimer(mSkillCfg.mEffectDelay, SetupAreaTimerStep2) .SetAutoDestroy(true).CreateNormal(); mTimerToDestroy.Add(delayTimer); } else { SetupAreaTimerStep2(); } } }
void SetupCdTimer() { mCdTimer = new DCDurationTimer(mSkillCfg.mCdDuration, OnCdEnd); mCdTimer.SetAutoDestroy(true); mCdTimer.CreateNormal(); ViewGen.cdImage.fillAmount = 1; ViewGen.cdImage.enabled = true; }
/// <summary> /// 开始播放cd倒计时 /// </summary> public void OnKeySkillCreate(Skill skill) { mSkillCfg = skill.GetSkillCfg(); if (mSkillCfg.mCdWaitDuration > 0) { mWaitCdTimer = new DCDurationTimer(mSkillCfg.mCdWaitDuration, OnWaitCdEnd); mWaitCdTimer.SetAutoDestroy(true); mWaitCdTimer.CreateNormal(); } }
private void SetupAreaTimerStep2() { if (mSkillCfg.mAffectInterval > 0) { var intervalTimer = new DCDurationTimer(mSkillCfg.mAffectInterval, PostDoSkillEffect, -1) .CreateNormal(); mTimerToDestroy.Add(intervalTimer); } else { PostDoSkillEffect(); } }
private void CreateBullet() { switch (mSkillCfg.mTargetType) { case SkillTargetType.Actor: { var transformTraceTarget = gameObject.AddComponent <TfTraceTarget>(); transformTraceTarget.StartTrace(mCastCfg.mTargets[0].GetTransform(), SystemPreset.move_stop_distance, mSkillCfg.mSpeed); break; } case SkillTargetType.Position: { var arriveCmp = gameObject.AddComponent <TfArrivePosition>(); arriveCmp.StartTrace(mCastCfg.mTargetPosition, SystemPreset.move_stop_distance, mSkillCfg.mSpeed); break; } case SkillTargetType.Direction: { var moveDir = gameObject.AddComponent <TfMoveToDirection>(); moveDir.StartMove(mCastCfg.mDirection, mSkillCfg.mDuration, mSkillCfg.mSpeed); break; } } if (mSkillCfg.mTimer) { //因为要检查是否获取目标,所以子弹类型每帧更新 if (mSkillCfg.mEffectDelay > 0) { var delayTimer = new DCDurationTimer(mSkillCfg.mEffectDelay, SetupBulletTimerStep2) .SetAutoDestroy(true).CreateNormal(); mTimerToDestroy.Add(delayTimer); } else { SetupBulletTimerStep2(); } } }
void OnCdEnd() { mCdTimer = null; ViewGen.cdImage.enabled = false; ViewGen.cdImage.fillAmount = 0; }