質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

3回答

3234閲覧

unityのジャイロセンサーの基準値について

709

総合スコア28

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

1クリップ

投稿2019/04/07 12:16

編集2019/04/07 22:19

#やりたいこと
玉転がしゲームを作っていてボールをスマホのジャイロセンサーで操作する機能をつけた際平らな場所に置いたときに0(動かない状態)で操作しずらかったので少し角度を上げた状態を動かない状態にしたいのですがどうすればいいでしょうか?
イメージ説明

C#

1using UnityEngine; 2using System.Collections; 3 4public class PlayerController : MonoBehaviour 5{ 6 // speedを制御する 7 public float speed = 20; 8 int zyairo; 9 void Start (){ 10 zyairo= PlayerPrefs.GetInt("zyairo"); 11 } 12 void FixedUpdate () 13 { 14 float x = Input.GetAxis("Horizontal"); 15 float z = Input.GetAxis("Vertical"); 16 17 Rigidbody rigidbody = GetComponent<Rigidbody>(); 18 19 // xとzにspeedを掛ける 20 rigidbody.AddForce(x * speed, 0, z * speed); 21 } 22 void Update (){ 23 var dir = Vector3.zero; 24 dir.x = Input.acceleration.x; 25 dir.y = Input.acceleration.y; 26 if (dir.sqrMagnitude > 1) 27 dir.Normalize(); 28 29 // Make it move 10 meters per second instead of 10 meters per frame... 30 dir *= Time.deltaTime; 31 Rigidbody rigidbody = GetComponent<Rigidbody>();// 20 50 32 rigidbody.AddForce(dir.x*(speed*zyairo),0,(float)(dir.y+0.8)*speed*zyairo); 33 } 34}

こうするとなぜかボールがすぐに上にいってしまいました(下に行かなくなる 横移動はできる)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2019/04/07 12:22

これだけだと分かりづらいので、ソースコードの形で記載してください。
709

2019/04/07 12:24

すみません治します
guest

回答3

0

((float)dir.y+0.8)(speedzyairo)
これだとどうなりますか(キャストしてから加算)

(float)(dir.y+0.08)speedzyairo
これだとどうなりますか(0.08)

(float)(dir.y-0.8)speedzyairo
これだとどうなりますか(-0.8)

投稿2019/04/08 04:41

hillacken

総合スコア359

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

709

2019/04/08 08:43

1.上に行く
709

2019/04/08 08:43

キャストはfつけたらいりませんでした
709

2019/04/08 08:48

2.上に行く
709

2019/04/08 08:54

3.下に行く
hillacken

2019/05/28 23:18 編集

4.(y×speed×zyairo)+0.8
hillacken

2019/05/28 23:18 編集

で、どうでしょうか?
guest

0

ジャイロセンサーの傾きと下の向きで内積取って、その角度に応じた動きを付ければいいと思います。

投稿2019/05/29 00:56

stdio

総合スコア3307

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Input.acceleration
は、加速度センサーなので
傾き(ジャイロセンサー)は
Input.gyro
ではないでしょうか?

追記
加速度センサーで良いみたいなので
dir.y = Input.acceleration.y + 0.8;
と、ノーマライズ前に0.8を加算しておく方法でどうでしょうか?

投稿2019/05/28 23:48

編集2019/06/01 00:04
k.matsuda

総合スコア293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2019/05/29 00:09

ジャイロセンサーとは質問文で書いてありますが 傾きを検知したいという用途であればメインで使うのは加速度センサーの方でいいのです。
k.matsuda

2019/05/31 07:17

今気づいたんですが、 ノーマライズしたら値が変わっちゃいますよね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問