public void Excute() { Vector3 pos = soliderInfo.GetPosition(); float dis = BattleUtils.Distance2(pos, targetPos); if (dis < 10 * Time.deltaTime) { soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z); soliderInfo.ChangeState("idle"); } else { pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * 10); soliderInfo.SetPosition(pos.x, pos.y, pos.z); } }
public void Excute() { Vector3 pos = soliderInfo.GetPosition(); float dis = BattleUtils.Distance2(pos, targetPos); if (dis < speed * Time.deltaTime) { soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z); soliderInfo.ChangeState("attack", new StateParam(attackInfo)); } else { pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * speed); soliderInfo.SetPosition(pos.x, pos.y, pos.z); } }
public void Excute() { Vector3 pos = soliderInfo.GetPosition(); float dis = Vector3.Distance(pos, targetPos); if (dis < speed * Time.deltaTime) { soliderInfo.SetPosition(targetPos.x, targetPos.y, targetPos.z); CharacterInfo attackInfo = soliderInfo.GetAttackInfo(); soliderInfo.SetAttackInfo(attackInfo); attackInfo.SetAttackInfo(soliderInfo); soliderInfo.ChangeState("attack", attackInfo); attackInfo.ChangeState("attack", soliderInfo); } else { pos = Vector3.MoveTowards(pos, targetPos, Time.deltaTime * speed); soliderInfo.SetPosition(pos.x, pos.y, pos.z); } }