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

質問編集履歴

2

画像追加

2019/04/07 22:19

投稿

naotiki
naotiki

スコア28

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,6 @@
1
1
  #やりたいこと
2
2
  玉転がしゲームを作っていてボールをスマホのジャイロセンサーで操作する機能をつけた際平らな場所に置いたときに0(動かない状態)で操作しずらかったので少し角度を上げた状態を動かない状態にしたいのですがどうすればいいでしょうか?
3
+ ![イメージ説明](6419647c66fe61c058ad0cefbaeb0d9f.png)
3
4
  ```C#
4
5
  using UnityEngine;
5
6
  using System.Collections;

1

コードの追加

2019/04/07 22:19

投稿

naotiki
naotiki

スコア28

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,39 @@
1
1
  #やりたいこと
2
2
  玉転がしゲームを作っていてボールをスマホのジャイロセンサーで操作する機能をつけた際平らな場所に置いたときに0(動かない状態)で操作しずらかったので少し角度を上げた状態を動かない状態にしたいのですがどうすればいいでしょうか?
3
3
  ```C#
4
+ using UnityEngine;
5
+ using System.Collections;
6
+
7
+ public class PlayerController : MonoBehaviour
8
+ {
9
+ // speedを制御する
10
+ public float speed = 20;
11
+ int zyairo;
12
+ void Start (){
13
+ zyairo= PlayerPrefs.GetInt("zyairo");
14
+ }
15
+ void FixedUpdate ()
16
+ {
17
+ float x = Input.GetAxis("Horizontal");
18
+ float z = Input.GetAxis("Vertical");
19
+
20
+ Rigidbody rigidbody = GetComponent<Rigidbody>();
21
+
4
- //-0.8がちょうどいい角度. configはユーザーが変更でき
22
+ // xとzにspeedを掛け
5
- ジャイロセンサーの値+0.8*int型 speed*int型 config
23
+ rigidbody.AddForce(x * speed, 0, z * speed);
24
+ }
25
+ void Update (){
26
+ var dir = Vector3.zero;
27
+ dir.x = Input.acceleration.x;
28
+ dir.y = Input.acceleration.y;
29
+ if (dir.sqrMagnitude > 1)
30
+ dir.Normalize();
31
+
32
+ // Make it move 10 meters per second instead of 10 meters per frame...
33
+ dir *= Time.deltaTime;
34
+ Rigidbody rigidbody = GetComponent<Rigidbody>();// 20 50
35
+ rigidbody.AddForce(dir.x*(speed*zyairo),0,(float)(dir.y+0.8)*speed*zyairo);
36
+ }
37
+ }
6
38
  ```
7
- こうするとなぜか動きせんでした
39
+ こうするとなぜかボールがすぐに上にいってしいました(下に行かなくなる 横移動はできる)