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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Q&A

解決済

1回答

1011閲覧

→キーで移動させるとy座標が勝手に移動する

grape_ll

総合スコア83

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

0グッド

0クリップ

投稿2021/02/23 11:48

下記に示すコードで実行してみたところ,R,Lキーではx座標上のみで移動するのですが,→,←キーを一度でも使うとy座標が15.6,z座標が3.646769となってしまいます.(動かす物体の元々の座標は(0, 1, 0))
理由を教えていただきたいです.

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5 6 7 8public class Player : MonoBehaviour 9{ 10 // Start is called before the first frame update 11 void Start(){ 12 Debug.Log("tmr"); 13 14 } 15 16 // Update is called once per frame 17 void Update(){ 18 if(Input.GetKey(KeyCode.L)){ 19 transform.Translate(-1, 0, 0); 20 } 21 if(Input.GetKey(KeyCode.R)){ 22 transform.Translate(1, 0, 0); 23 } 24 25 if (Input.GetKey(KeyCode.RightArrow)){ 26 transform.position = new Vector3(transform.position.x + 0.1f, 0, 0); 27 } 28 else if(Input.GetKey(KeyCode.LeftArrow)){ 29 transform.position = new Vector3(transform.position.x - 0.1f, 0, 0); 30 } 31 } 32} 33

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

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

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

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

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

tsuki01

2021/02/23 14:09 編集

playerオブジェクトの親となっている、GameObjectのTransform値が分かる情報も追記頂けませんでしょうか。 (GameObjectのTransform値が影響しているのではないかと思い、追記頂きたいです)
guest

回答1

0

ベストアンサー

移動してしまう理由は、スクリプト内で「transform.position = 〜」としているからではないでしょうか。

positionは、ワールド座標系でオブジェクトの位置を指定するものです。
なので、親子関係に関係なく子オブジェクトが移動します。

【対処法】
移動させたくない場合、localPositionの方を利用してみてください。
localPositionは、親オブジェクトからの相対位置で子オブジェクトを移動させることが出来ます。
※「transform.localPosition = 〜」の様な記述で。


補足
インスペクターに表示されている座標は、**「親オブジェクトから見た座標」**となります。
矢印キーを押した後に、他のオブジェクトからPlayerオブジェクトを参照すると、座標が指定した通りの(0, 1, 0)になっていると思います。

投稿2021/02/24 01:44

tsuki01

総合スコア1751

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

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

grape_ll

2021/03/07 11:08

返信が遅れてしまい,大変申し訳ございません. おっしゃる通りにlocalPositionに変更したら思った通りに動かすことが出来ました.ありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問