回答編集履歴

2

誤字の修正

2017/07/09 22:47

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- では逆にcameraparentの方を使わずにやるパターンではどうでしょうか。
35
+ では逆にcameraparentの方を使わずにやるパターンではどうでしょうか。
36
36
 
37
37
 
38
38
 

1

コメントを受けて別パターンのコードを追記

2017/07/09 22:46

投稿

Bongo
Bongo

スコア10807

test CHANGED
@@ -25,3 +25,105 @@
25
25
  ```
26
26
 
27
27
  ではどうでしょうか。
28
+
29
+
30
+
31
+ [コメントを受けて追記]
32
+
33
+
34
+
35
+ では逆にcameraparentの方をを使わずにやるパターンではどうでしょうか。
36
+
37
+
38
+
39
+ ※ご質問者さんがカメラの親をあえて取得して操作していたのには何か理由があるのでしょうか?
40
+
41
+ 以下のパターンだとカメラの親のtransformには手を付けないことになりますが、その理由によっては都合が悪いかもしれません。
42
+
43
+ ```C#
44
+
45
+ public class CameraRotate : MonoBehaviour
46
+
47
+ {
48
+
49
+ // GameObject cameraparent; // cameraparentは使用しない
50
+
51
+ Quaternion defaultCameraRot;
52
+
53
+ float timer = 0;
54
+
55
+
56
+
57
+ // Use this for initialization
58
+
59
+ void Start()
60
+
61
+ {
62
+
63
+
64
+
65
+ //カメラの初期方向を記憶
66
+
67
+ // cameraparent = Camera.main.transform.parent.gameObject;
68
+
69
+ // defaultCameraRot = cameraparent.transform.localRotation;
70
+
71
+ defaultCameraRot = transform.localRotation; // cameraparentではなく自身の回転を保存
72
+
73
+ }
74
+
75
+
76
+
77
+ // Update is called once per frame
78
+
79
+ void Update()
80
+
81
+ {
82
+
83
+
84
+
85
+ if (Input.GetKey(KeyCode.UpArrow)) transform.Rotate(-1.2f, 0, 0);
86
+
87
+ if (Input.GetKey(KeyCode.DownArrow)) transform.Rotate(1.2f, 0, 0);
88
+
89
+
90
+
91
+ if (Input.GetKey(KeyCode.RightShift))
92
+
93
+ timer = 0.5f;
94
+
95
+
96
+
97
+ //スムーズにカメラを戻す
98
+
99
+ if (timer > 0)
100
+
101
+ {
102
+
103
+ /*
104
+
105
+ cameraparent.transform.localRotation = Quaternion.Slerp
106
+
107
+ (cameraparent.transform.localRotation,
108
+
109
+ defaultCameraRot, Time.deltaTime * 10);
110
+
111
+ */
112
+
113
+ // cameraparent.transformの代わりに自身のtransformを回転
114
+
115
+ transform.localRotation = Quaternion.Slerp(transform.localRotation, defaultCameraRot, Time.deltaTime * 10);
116
+
117
+
118
+
119
+ timer -= Time.deltaTime;
120
+
121
+ }
122
+
123
+ }
124
+
125
+
126
+
127
+ }
128
+
129
+ ```