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

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

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

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

Unity3D

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

Unity

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

Q&A

2回答

1439閲覧

unity Y座標だけが参照されない。

rinnngogohann

総合スコア7

C#

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

Unity3D

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

Unity

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

1グッド

1クリップ

投稿2019/10/05 10:13

編集2019/10/05 10:27

###実現したいこと
unityの3DオブジェクトのTransformの位置座標を画面内にテキストとして表示させようとしています。x座標はTransformの表示どうりに参照できるのですがy座標の数字は加算しまいます、解決策をご存じの方是非ご教授していただきたいです!
![イメージ説明]イメージ説明
###コード

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI;//ここ注意 5 6public class movingg : MonoBehaviour { 7 //変数設定 8 9 float m_Y; 10 11 //知りたい座標のGaeObjectの設定 12 public GameObject target; 13 14 // Use this for initialization 15 void Start() 16 { 17 18 } 19 // Update is called once per frame 20 void Update() 21 { 22 //それぞれに座標を挿入 23 m_Y = target.transform.position.y; 24 //テキストに表示 25 this.GetComponent<Text>().text = "Y座標は" + m_Y.ToString(); 26 27 } 28}
rintarou1234👍を押しています

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

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

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

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

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

rintarou1234

2019/10/05 10:27

見た感じだと Transformの値もテキストの値も同じように見えますが... もしかしてZ座標をY座標と勘違いしていませんか? 自分のほうが間違っているようならすみませんが、言ってもらえると助かります。
rinnngogohann

2019/10/05 10:33

動作開始直後はテキストの値と同じように表示されるのですが動作が終わった後もY座標がどんどん加算されて行ってしまうという状況です。 わかりにくい画像を使ってしまい申し訳ないです.. 画像はわかりやすいものに変更しました。
rintarou1234

2019/10/05 11:18 編集

試しにですけど一回Updateの下にm_Y = 0;と入れて、m_Yに値を入れる前に一回リセットしてみたらどうでしょう。それでできなかったら確信はないですが、コードが原因ではないと思うんですが… もしそれでもだめそうなら、残念ですが私はお力になれなさそうです。 void Update() {    m_Y = 0; // これを入れてみてください //それぞれに座標を挿入 m_Y = target.transform.position.y; //テキストに表示 this.GetComponent<Text>().text = "Y座標は" + m_Y.ToString(); }
rinnngogohann

2019/10/05 11:39

回答ありがとうございます。試してみたのですが値は変わりませんでした.. TransformのPostationのY座標値は正常に表示されているのにTextにして表示されると加算されるの本当にわからないですよね..
guest

回答2

0

target.transform.positionで取得できるのはワールド座標ですが、インスペクタに表示されるのはローカル座標です。
target.transform.localPositionを使ってはどうでしょうか?

投稿2019/10/05 11:07

ku__ra__ge

総合スコア4524

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

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

rinnngogohann

2019/10/05 11:39

回答ありがとうございます、試してみたのですが効果ありませんでした...
guest

0

現状MHuman_Rootの座標を表示、動作中targetが変わる事は無いという前提で考えます。
movinggtargetMHuman_Rootが指定されているか確認してみて下さい。

投稿2019/10/06 09:43

編集2019/10/06 09:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問