###実現したいこと
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}
見た感じだと
Transformの値もテキストの値も同じように見えますが...
もしかしてZ座標をY座標と勘違いしていませんか?
自分のほうが間違っているようならすみませんが、言ってもらえると助かります。
動作開始直後はテキストの値と同じように表示されるのですが動作が終わった後もY座標がどんどん加算されて行ってしまうという状況です。
わかりにくい画像を使ってしまい申し訳ないです..
画像はわかりやすいものに変更しました。
試しにですけど一回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();
}
回答ありがとうございます。試してみたのですが値は変わりませんでした..
TransformのPostationのY座標値は正常に表示されているのにTextにして表示されると加算されるの本当にわからないですよね..