回答編集履歴

1

追記

2020/04/04 02:00

投稿

退会済みユーザー
test CHANGED
@@ -3,6 +3,8 @@
3
3
  LocalMoveのTOに対応するものはendValueV3だとわかります。
4
4
 
5
5
  他にはこんなものがあります。
6
+
7
+
6
8
 
7
9
  ```c#
8
10
 
@@ -22,9 +24,13 @@
22
24
 
23
25
  ```
24
26
 
27
+
28
+
25
29
  普通にGetComponentしてendValue3を書き換えただけだと反映されないので、
26
30
 
27
31
  DORestart(true)する必要があります。
32
+
33
+
28
34
 
29
35
  ```c#
30
36
 
@@ -34,6 +40,76 @@
34
40
 
35
41
  dot.DORestart(true);
36
42
 
43
+ ```
44
+
45
+
46
+
47
+ 私はRelativeにチェックを入れていたのでこれだけでできましたが、
48
+
49
+ 絶対座標の場合はDOTweenAnimation.csを書き換えないとダメですね。
50
+
51
+
52
+
53
+ ```c#
54
+
55
+ public override void DORestart(bool fromHere)
56
+
57
+ {
58
+
59
+ _playCount = -1;
60
+
61
+ if (tween == null) {
62
+
63
+ if (Debugger.logPriority > 1) Debugger.LogNullTween(tween); return;
64
+
65
+ }
66
+
67
+ if (fromHere && isRelative) ReEvaluateRelativeTween();
68
+
69
+ if (fromHere && !isRelative) ReEvaluateTween();//変更箇所
70
+
71
+ DOTween.Restart(this.gameObject);
72
+
73
+ }
74
+
75
+ ```
76
+
77
+
78
+
79
+ ReEvaluateTween()はこれから作ります。
80
+
81
+ void ReEvaluateRelativeTween(){}の下にこれを追記してください。
82
+
83
+
84
+
85
+ ```c#
86
+
87
+ void ReEvaluateTween()
88
+
89
+ {
90
+
91
+ GameObject tweenGO = GetTweenGO();
92
+
93
+ if (tweenGO == null) {
94
+
95
+ Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target/GameObject is unset: the tween will not be created.", this.gameObject.name), this.gameObject);
96
+
97
+ return;
98
+
99
+ }
100
+
101
+ if (animationType == AnimationType.Move) {
102
+
103
+ ((Tweener)tween).ChangeEndValue(endValueV3, true);
104
+
105
+ } else if (animationType == AnimationType.LocalMove) {
106
+
107
+ ((Tweener)tween).ChangeEndValue(endValueV3, true);
108
+
109
+ }
110
+
111
+ }
112
+
37
113
 
38
114
 
39
115
  ```