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

ActionSkewBy.cs 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. class ActionSkewBy : ActionInterval
  5. {
  6. protected Vector3 skewAngles1;
  7. protected Vector3 skewAngles2;
  8. protected Mesh mesh;
  9. public ActionSkewBy(Vector3 tgtAngles1, Vector3 tgtAngles2, float tgtDuration)
  10. : base(tgtDuration)
  11. {
  12. skewAngles1 = tgtAngles1;
  13. skewAngles2 = tgtAngles2;
  14. }
  15. public override Action clone()
  16. {
  17. return new ActionSkewBy(skewAngles1, skewAngles2, duration);
  18. }
  19. public override Action reverse()
  20. {
  21. return new ActionSkewBy(-skewAngles1, -skewAngles2, duration);
  22. }
  23. public override void start()
  24. {
  25. base.start();
  26. if (!(target is MeshActor))
  27. {
  28. throw new Exception("You should use MeshActor class instead of Actor, if you want to skew your object.");
  29. }
  30. }
  31. public override void stepInterval(float dt)
  32. {
  33. float d = dt / duration;
  34. Vector3 tgt = skewAngles1 * d;
  35. ((MeshActor)target).skewAngles1 += tgt;
  36. tgt = skewAngles2 * d;
  37. ((MeshActor)target).skewAngles2 += tgt;
  38. }
  39. }