void StartSimulate() { foreach (var s in GetComponentsInChildren <Skill>()) { s.gameObject.SetActive(s == skill); } state = SkillSimulatorState.STARTED; skill.CaculateSkillTime(); this.skillTime = skill.skillTime / 1000.0f; simulateTimer = 0; playingTime = Mathf.RoundToInt(simulateTimer * 1000); skill.ResetSkill(caller); skill.Simulate(caller, playingTime); }
void Simulate() { if (simulateTimer > this.skillTime) { if (loop) { simulateTimer = 0; } else { state = SkillSimulatorState.IDLE; } } playingTime = Mathf.RoundToInt(simulateTimer * 1000); if (skill.IsRunning) { skill.Simulate(caller, playingTime); } simulateTimer += Time.deltaTime; }