void StopAction(SkillCaller caller, Skill skill, int time) { state = TweenState.STOPED; gameObject.SetActive(false); OnStop(caller, skill, time - startFrame); OnClean(caller, skill); }
public void CancelAction(SkillCaller caller, Skill skill, int time, int reason) { state = TweenState.CANCELED; gameObject.SetActive(false); OnCancel(caller, skill, time, reason); OnClean(caller, skill); }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { //Debug.LogFormat ("{0} SkillEffect.OnStart",SkillSimulator.playingTime); if (effectBone != null) { effect.transform.parent = effectBone; } }
public virtual int GetEndTime(SkillCaller caller, Skill skill) { if (duration <= 0) { return(startFrame); } return(startFrame + duration); }
protected override void OnUpdate(SkillCaller caller, Skill skill, int time) { float factor = 0; if (duration > 0) { factor = ((float)time) / duration; } path.UpdatePath(transform, factor); }
public void ResetSkill(SkillCaller caller) { state = SkillState.IDLE; actions.Clear(); var skillActions = this.GetComponentsInChildren <SkillTimeTween> (); foreach (var action in skillActions) { action.ResetAction(caller, this); actions.Add(action); } limits.Clear(); }
public static Skill CreateSkill(SkillCaller caller, string skillID, Example.Skill.SkillType skillType, params Example.Skill.TargetType[] skillTargets) { var go = CreateGameObject(caller.transform, "Skill-" + skillID); var skill = go.AddComponent <Skill> (); GetSkillActionRoot(skill); GetSkillParticleRoot(skill); skill.skillID = skillID; skill.skillType = skillType; skill.targetTypes = skillTargets; return(skill); }
public void CancelSkill(SkillCaller caller, int time, int reason) { state = SkillState.CANCELED; cancelTime = time; OnCancel(caller, time, reason); foreach (var action in actions) { if (!action.IsOver) { action.CancelAction(caller, this, time, reason); } } OnClean(); }
public static SkillCaller GetSkillCaller(Animator animator) { SkillCaller caller = null; var go = GameObject.Find(animator.name + "-Skills"); if (go == null) { go = new GameObject(animator.name + "-Skills"); } caller = go.GetComponent <SkillCaller> (); if (caller == null) { caller = go.AddComponent <SkillCaller> (); } caller.animator = animator; return(caller); }
protected bool UpdateSkill(SkillCaller caller, int time) { OnUpdate(caller, time - startTime); bool active = false; foreach (var action in actions) { if (!action.IsOver) { action.Simulate(caller, this, time); } if (!action.IsOver) { active = true; } } return(active); }
public void Simulate(SkillCaller caller, int time) { switch (state) { case SkillState.IDLE: StartSkill(caller, time); if (!UpdateSkill(caller, time)) { StopSkill(caller, time); } break; case SkillState.STARTED: if (!UpdateSkill(caller, time)) { StopSkill(caller, time); } break; } }
public virtual void Simulate(SkillCaller caller, Skill skill, int time) { switch (state) { case TweenState.IDLE: if (time >= startFrame) { StartAction(caller, skill, time); } break; case TweenState.STARTED: OnUpdate(caller, skill, time - startFrame); if (duration >= 0 && time >= startFrame + duration) { StopAction(caller, skill, time); } break; } }
public override int GetEndTime(SkillCaller caller, Skill skill) { if (clipInfo == null) { var clips = caller.animator.runtimeAnimatorController.animationClips; foreach (var clip in clips) { if (clip.name == actionName) { clipInfo = clip; break; } } } if (clipInfo != null) { duration = Mathf.RoundToInt(clipInfo.length * 1000); } return(startFrame + duration); }
protected virtual void OnUpdate(SkillCaller caller, Skill skill, int time) { }
protected virtual void OnStop(SkillCaller caller, Skill skill, int time) { }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { caller.PlayAction(endAction, 0); }
protected override void OnClean(SkillCaller caller, Skill skill) { base.OnClean(caller, skill); caller.PlayAction("Stand", 300); }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { base.OnStart(caller, skill, time); skill.AddLimit(this); }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { Debug.LogFormat("{0} {1} Play {2}", SkillSimulator.playingTime, caller.name, actionName); caller.PlayAction(actionName, crossFadeTime); }
protected override void OnClean(SkillCaller caller, Skill skill) { base.OnClean(caller, skill); skill.RemoveLimit(this); }
protected void StartSkill(SkillCaller caller, int time) { state = SkillState.STARTED; startTime = time; OnStart(caller, time); }
protected void StopSkill(SkillCaller caller, int time) { state = SkillState.STOPED; OnStop(caller, time); OnClean(); }
protected virtual void OnCancel(SkillCaller caller, Skill skill, int time, int reason) { }
protected virtual void OnClean(SkillCaller caller, Skill skill) { gameObject.SetActive(false); }
public void ResetAction(SkillCaller caller, Skill skill) { state = TweenState.IDLE; gameObject.SetActive(false); }
protected override void OnStart(SkillCaller caller, Skill skill, int time) { path.StartPath(transform); }
void StartAction(SkillCaller caller, Skill skill, int time) { state = TweenState.STARTED; gameObject.SetActive(true); OnStart(caller, skill, time - startFrame); }
public virtual void CheckHit(SkillCaller caller, Skill skill, int time) { }
protected virtual void OnStart(SkillCaller caller, int time) { startTime = time; }