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

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

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

Q&A

解決済

1回答

315閲覧

eulerAnglesをfloat型に代入すると0になる

oinari_san

総合スコア10

0グッド

0クリップ

投稿2019/03/23 08:14

編集2019/03/23 23:40

前提・実現したいこと

2Dのシューティングゲームを作成しています。
右スティックの向きでアニメーションで矢印の向きが変わるようにしました。
矢印の向きに弾を発射させたい。

発生している問題・エラーメッセージ

float型にtransform.rotation.eulerAngles.zを代入してその値の角度に弾を発射させようとし、右スティックを動かしてみると0が代入されています。

該当のソースコード

lookオブジェクトの向きを読み取るスクリプト

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class PlayerController : MonoBehaviour { 6 7 public float speed; //移動の速さ 8 9 float horizontal; 10 float vertical; 11 float horizontal2; 12 float vertical2; 13 14 Vector3 velocity; 15 GameObject look; //矢印 16 17 public Shot shotPrefab; // 弾のプレハブ 18 public float shotSpeed; // 弾の移動の速さ 19 public float shotAngleRange; // 複数の弾を発射する時の角度 20 public int shotCount; // 弾の発射数 21 22 float CT1 = 0.5f; // クールタイム 23 bool Attack1; 24 25 public float angles; 26 27 void Start () { 28 29 } 30 31 void Update () { 32 look = GameObject.Find("look"); 33 34 //矢印キーの入力情報を取得する 35 horizontal = Input.GetAxis("Horizontal"); 36 vertical = Input.GetAxis("Vertical"); 37 38 //右スティック 39 horizontal2 = Input.GetAxis("Horizontal2"); 40 vertical2 = Input.GetAxis("Vertical2"); 41 42 //矢印キーが押されている方向にプレイヤーを移動する 43 velocity = new Vector3(horizontal, vertical) * speed; 44 transform.localPosition += velocity; 45 46 //矢印の向きを取得 47 angles = look.transform.rotation.eulerAngles.z; 48 Debug.Log(angles);

lookオブジェクトのアニメーション操作のスクリプト

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class AimController : MonoBehaviour { 6 7 private Animator Aim; 8 private GameObject Player; 9 10 public float h; 11 public float v; 12 13 void Start () { 14 Aim = GetComponent<Animator>(); 15 } 16 17 // Update is called once per frame 18 void Update () { 19 Player = GameObject.Find("Player1"); 20 gameObject.transform.position = Player.transform.position; 21 22 // 右スティックの入力取得 23 h = Input.GetAxis("Horizontal2"); 24 v = Input.GetAxis ("Vertical2"); 25 26 //モーション判定用のパラメータ 27 Aim.SetFloat("Direction_x", h); 28 Aim.SetFloat("Direction_y", v); 29 } 30}

補足情報(FW/ツールのバージョンなど)

unity 5.6.3f1

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

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

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

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

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

sakura_hana

2019/03/23 08:20

このコード内ではlookオブジェクトの向きは変化していないようですが、別の場所で変化させているのでしょうか? (「右スティックの向きでアニメーションで矢印の向きが変わるようにしました。」とありますが、horizontal2とvertical2がどこにも使われていないようです)
oinari_san

2019/03/23 23:35

すいません。別のスクリプトで変化させています。 右スティックの向きでアニメーションを変えています。 修正して本文に載せておきます。
guest

回答1

0

自己解決

すいません。ほかのスクリプトで回転を制御していて打消しあってたみたいです。

投稿2019/03/24 00:31

oinari_san

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問