teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

根本的に間違っていたので全面書き直し

2020/05/19 08:16

投稿

sakura_hana
sakura_hana

スコア11429

answer CHANGED
@@ -1,16 +1,31 @@
1
- 一応確認ですが、インスペクター上でCamOffset赤ライン引いてあるところ)を操作すると正常動作ますよね?
1
+ 根本的間違っていたので全面書き直
2
2
 
3
- 何故単独だとscrollが取れてcamOffsetありだと取れないのかよく分かりませんが以下ような感でどうでしょう
3
+ 元コードをよく見直したところcamOffset変更ゃ確に駄目ですね。
4
- (小さ値になってて分かりにくいかもしれないので必要に応じspeedの値も変えてみてください
4
+ `SetTargetOffsets`とうメソッドがあるのでそれを利用してみてください
5
5
 
6
6
  ```C#
7
- void Update()
7
+ public class getcamoffset : MonoBehaviour
8
8
  {
9
- // 先に取得
10
- scroll = Input.GetAxis("Mouse ScrollWheel");
11
- Debug.Log(scroll);
9
+ private float scroll;
10
+ public float speed = 1f;
11
+ public ThirdPersonOrbitCamBasic camBasic; //変更してます。インスペクターからD&Dし直してください
12
+ Vector3 pivotOffset;
13
+ Vector3 camOffset;
12
14
 
15
+ void Start()
16
+ {
17
+ pivotOffset = camBasic.pivotOffset;
18
+ camOffset = camBasic.camOffset;
19
+ }
20
+
21
+ void Update()
22
+ {
23
+ scroll = Input.GetAxis("Mouse ScrollWheel");
13
- // 代入ではなく加算する
24
+ Debug.Log(scroll);
25
+
14
- gameobject.GetComponent<ThirdPersonOrbitCamBasic>().camOffset += Vector3.forward * scroll * speed;
26
+ camOffset += Vector3.forward * scroll * speed;
27
+
28
+ camBasic.SetTargetOffsets(pivotOffset, camOffset);
29
+ }
15
30
  }
16
31
  ```