回答編集履歴
5
誤字
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
標準のやり方なら[コルーチン](http://docs.unity3d.com/ja/current/Manual/Coroutines.html)ですね。
|
3
3
|
不完全ですが、以下サンプル(マイナスの場合の処理を継ぎ足しておいてください)
|
4
4
|
```c#
|
5
|
-
IEnumerator SampleResetAnimation(
|
5
|
+
IEnumerator SampleResetAnimation() {
|
6
6
|
float speed = 1.0f; // もちろん、メンバで定義しておいてもOK
|
7
7
|
if (rotX > 0)
|
8
8
|
{
|
4
誤字
answer
CHANGED
@@ -13,7 +13,8 @@
|
|
13
13
|
yield return null;
|
14
14
|
}
|
15
15
|
}
|
16
|
+
// 最後はぴったり0になるように
|
16
|
-
rotX
|
17
|
+
rotX = 0;
|
17
18
|
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
18
19
|
yield return null;
|
19
20
|
}
|
3
前のだと無限ループするので
answer
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Unirx等の強力なライブラリを使う方法もありますが、
|
2
2
|
標準のやり方なら[コルーチン](http://docs.unity3d.com/ja/current/Manual/Coroutines.html)ですね。
|
3
|
-
|
3
|
+
不完全ですが、以下サンプル(マイナスの場合の処理を継ぎ足しておいてください)
|
4
4
|
```c#
|
5
|
-
IEnumerator SampleResetAnimation() {
|
5
|
+
IEnumerator SampleResetAnimation(float direction) {
|
6
6
|
float speed = 1.0f; // もちろん、メンバで定義しておいてもOK
|
7
7
|
if (rotX > 0)
|
8
8
|
{
|
@@ -13,18 +13,7 @@
|
|
13
13
|
yield return null;
|
14
14
|
}
|
15
15
|
}
|
16
|
-
else
|
17
|
-
{
|
18
|
-
while(rotX < 0)
|
19
|
-
{
|
20
|
-
|
16
|
+
rotX -= speed;
|
21
|
-
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
22
|
-
yield return null;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
// 最後はぴったり0になるように
|
27
|
-
rotX = 0;
|
28
17
|
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
29
18
|
yield return null;
|
30
19
|
}
|
2
カメラ更新忘れてた
answer
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Unirx等の強力なライブラリを使う方法もありますが、
|
2
2
|
標準のやり方なら[コルーチン](http://docs.unity3d.com/ja/current/Manual/Coroutines.html)ですね。
|
3
|
-
以下サンプル
|
3
|
+
ちょっと汚いですが、以下サンプル
|
4
4
|
```c#
|
5
5
|
IEnumerator SampleResetAnimation() {
|
6
6
|
float speed = 1.0f; // もちろん、メンバで定義しておいてもOK
|
@@ -9,6 +9,7 @@
|
|
9
9
|
while(rotX > 0)
|
10
10
|
{
|
11
11
|
rotX -= speed;
|
12
|
+
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
12
13
|
yield return null;
|
13
14
|
}
|
14
15
|
}
|
@@ -17,12 +18,14 @@
|
|
17
18
|
while(rotX < 0)
|
18
19
|
{
|
19
20
|
rotX += speed;
|
21
|
+
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
20
22
|
yield return null;
|
21
23
|
}
|
22
24
|
}
|
23
25
|
|
24
26
|
// 最後はぴったり0になるように
|
25
27
|
rotX = 0;
|
28
|
+
camera.transform.eulerAngles = new Vector3(rotX, rotY, 0.0f );
|
26
29
|
yield return null;
|
27
30
|
}
|
28
31
|
|
1
一部誤字
answer
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
```c#
|
5
5
|
IEnumerator SampleResetAnimation() {
|
6
6
|
float speed = 1.0f; // もちろん、メンバで定義しておいてもOK
|
7
|
-
if (
|
7
|
+
if (rotX > 0)
|
8
8
|
{
|
9
9
|
while(rotX > 0)
|
10
10
|
{
|