選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
このリポジトリはアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュや、課題・プルリクエストのオープンはできません。

56 行
1.3KB

  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace coa4u
  5. {
  6. class ActionScaleBy : ActionInterval
  7. {
  8. protected Vector3 delta;
  9. protected Vector3 path;
  10. public ActionScaleBy(Vector3 tgtDelta, float tgtDuration)
  11. : base(tgtDuration)
  12. {
  13. delta = tgtDelta;
  14. }
  15. public ActionScaleBy(Vector2 tgtValue, float tgtDuration)
  16. : this((Vector3)tgtValue, tgtDuration)
  17. {
  18. is2d = true;
  19. }
  20. public override ActionInstant clone()
  21. {
  22. return new ActionScaleBy(delta, duration);
  23. }
  24. public override ActionInstant reverse()
  25. {
  26. return new ActionScaleBy(delta * -1F, duration);
  27. }
  28. public override void start()
  29. {
  30. base.start();
  31. Vector3 scale = transform.localScale;
  32. scale.x *= delta.x;
  33. scale.y *= delta.y;
  34. scale.z *= delta.z;
  35. path = scale - transform.localScale;
  36. }
  37. public override void stepInterval(float dt)
  38. {
  39. float d = dt / duration;
  40. Vector3 tgt = path * d;
  41. transform.localScale += tgt;
  42. }
  43. public override void stop()
  44. {
  45. base.stop();
  46. }
  47. }
  48. }