回答編集履歴

3

コードの追加

2021/02/28 03:02

投稿

BRAK
BRAK

スコア98

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  /// </summary>
34
34
 
35
- const float frameRate = 0.012f;
35
+ float frameRate = 0.012f;
36
36
 
37
37
  /// <summary>
38
38
 
@@ -40,7 +40,7 @@
40
40
 
41
41
  /// </summary>
42
42
 
43
- float endFrame = 1.333f;
43
+ const float endFrame = 1.0f;
44
44
 
45
45
 
46
46
 
@@ -58,7 +58,7 @@
58
58
 
59
59
  //アニメーションを終了します
60
60
 
61
- if(frame >= endFrame) return;
61
+ if (frame > endFrame) return;
62
62
 
63
63
 
64
64
 
@@ -68,15 +68,27 @@
68
68
 
69
69
 
70
70
 
71
- //frameRate秒を超えた処理をします
71
+ //timeがframeRate未満なします
72
72
 
73
- if (time > frameRate) return;
73
+ if (time < frameRate) return;
74
74
 
75
75
 
76
76
 
77
77
  //指定のフレーム数を上げます
78
78
 
79
79
  frame += 0.01f;
80
+
81
+
82
+
83
+ if (frame >= endFrame)
84
+
85
+ {
86
+
87
+ anim.speed = 0;
88
+
89
+ return;
90
+
91
+ }
80
92
 
81
93
 
82
94
 
@@ -100,4 +112,4 @@
100
112
 
101
113
 
102
114
 
103
- frameRateとendFrameは再生するアニメーションから取得する必要があると思います。
115
+ frameRateは再生するアニメーションから取得する必要があると思います。

2

コードの追加

2021/02/28 03:02

投稿

BRAK
BRAK

スコア98

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  //アニメーションを終了します
60
60
 
61
- if(frame >= endFrame)
61
+ if(frame >= endFrame) return;
62
62
 
63
63
 
64
64
 

1

コードの追加

2021/02/28 02:28

投稿

BRAK
BRAK

スコア98

test CHANGED
@@ -3,3 +3,101 @@
3
3
 
4
4
 
5
5
  回答は後日に貼ります。少々お待ちください。
6
+
7
+
8
+
9
+ ```C#
10
+
11
+ コード
12
+
13
+ /// <summary>
14
+
15
+ /// 再生時間を計測します
16
+
17
+ /// </summary>
18
+
19
+ float time = 0;
20
+
21
+ /// <summary>
22
+
23
+ /// フレーム数を記録
24
+
25
+ /// </summary>
26
+
27
+ float frame = 0.0f;
28
+
29
+ /// <summary>
30
+
31
+ /// アニメーション再生のフレームレートを定義します
32
+
33
+ /// </summary>
34
+
35
+ const float frameRate = 0.012f;
36
+
37
+ /// <summary>
38
+
39
+ /// アニメーションフレーム数の終わり
40
+
41
+ /// </summary>
42
+
43
+ float endFrame = 1.333f;
44
+
45
+
46
+
47
+ /// <summary>
48
+
49
+ /// タイムスケールが0の時にアニメーションの再生をします
50
+
51
+ /// </summary>
52
+
53
+ void UnScaleAnim()
54
+
55
+ {
56
+
57
+ //このアニメーションの全てのフレームを再生し終わったら
58
+
59
+ //アニメーションを終了します
60
+
61
+ if(frame >= endFrame)
62
+
63
+
64
+
65
+ //時間を計測します
66
+
67
+ time += Time.unscaledDeltaTime;
68
+
69
+
70
+
71
+ //frameRate秒を超えたら処理をします
72
+
73
+ if (time > frameRate) return;
74
+
75
+
76
+
77
+ //指定のフレーム数を上げます
78
+
79
+ frame += 0.01f;
80
+
81
+
82
+
83
+ //フレーム位置でアニメーションの再生を行います
84
+
85
+ anim.Play("arrow", -1, frame);
86
+
87
+
88
+
89
+ //計測時間を0にします
90
+
91
+ time = 0;
92
+
93
+ }
94
+
95
+ ```
96
+
97
+
98
+
99
+ 秒数でフレーム数を上げていくと表示する画像が飛ぶのでカウント形式で処理を行っています。
100
+
101
+
102
+
103
+ frameRateとendFrameは再生するアニメーションから取得する必要があると思います。