🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Unity

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

Q&A

解決済

1回答

1895閲覧

オブジェクトのx軸移動について

porusan0880

総合スコア19

Unity

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

0グッド

0クリップ

投稿2019/12/19 11:46

Unityを勉強中なのですが、オブジェクトをx軸に左右移動をしたく、下記コードを設定しました。
ですが、「w,a,s,d」にてaキーを押下すると右に移動、dキーを押下すると左に移動と逆のx軸方向に移動してしまいます。
調べてみたところ下記コード内の「transform.right」が(-1.0,0,0)となっておりもともとのx軸がマイナスになっているため逆に動いている様です。
ですが、なぜここの値がマイナスになるかがわからず困っております。

こういった現象が起きた時どこかの設定を見たほうがいいなどありますでしょうか。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class PaddleController : MonoBehaviour { public float accel = 1000; private Rigidbody rb; public GameObject bullet; void Start() { rb = GetComponent<Rigidbody>(); } private void Update() { var force = transform.right * Input.GetAxisRaw("Horizontal") * accel; rb.AddForce(force, ForceMode.Impulse); } }

■該当オブジェクトのRigidbodyの数値
Mass:50
Drag:30
Angular Drag:0.05

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

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

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

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

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

stdio

2019/12/20 00:50

必ずそうなるなら、-1を乗算すれば出来ますよ。
guest

回答1

0

ベストアンサー

transform.rightはtransform.rotation * Vector3.rightですから、
transform.rotaitonが0,0,0になってないからです

そのオブジェクトは回転しているため、
そのオブジェクトにとっての右は(-1,0,0)であっています

投稿2019/12/20 01:26

izmktr

総合スコア2856

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問