名前の通りTextに座標を表示させようと思います。
##前提
1.[Hierarchy]Create->UI->Textを設置する
2.[Project]Create->C#Projectでスクリプトを作る
3.2で作ったスクリプトを1で作ったTextにアタッチする。
##前提2で作ったスクリプトに書くコード
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//ここ注意
public class (スクリプト名) : MonoBehaviour {
//変数設定
float m_X;
float m_Y;
float m_Z;
//知りたい座標のGaeObjectの設定
public GameObject target;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//それぞれに座標を挿入
m_X = target.transform.position.x;
m_Y = target.transform.position.y;
m_Z = target.transform.position.z;
//テキストに表示
this.GetComponent<Text> ().text = "X座標は" + m_X.ToString() + "\nY座標は" + m_Y.ToString() + "\nZ座標は" + m_Z.ToString();
}
}
##コピペした後にすること
1.(スクリプト名)
のところにScriptの名前を入れる
2.Inspectorのtarget
のところに場所を知りたいGameObjectをドラッグ&ドロップする
3.後は適当にTextの大きさや色、場所などを変更する。
##解説
まず
using UnityEngine.UI
これを追加しないとUIを変更できません。
次にfloat型で変数設定
m_
が変数の頭についているのはわかりやすいように
ちなみに、変数名の頭が_
やm_
、k
で始まるとInspecterでは取り除いてくれるらしい。
一様、Unityスクリプトリファレンス(特に何も書いてない)
次にtarget.transform.position.x
はtarget
のX座標の場所だけを取得する。
結構便利だから覚えたといたほうがいい
ちなみに他のy
とかz
とかでも同じ。
最後にthis.GetComponent<Text> ().text
を=
でつないだ先に書く内容を入れる。
日本語やそのまま表したい文字は"
で囲み(※1)
変数を表示させるためには(変数名).ToString()
と書く(※2)
また、両方とも描きたい場合は+
を間に挟む(※3)
Textを改行したくなったら\nを入れる(※4)
※1 (例:"Qiita始めました"
だと、そのまま『Qiita始めました』と出る)
※2 (変数名をSpeedとした場合の例:
Speed.ToString()
と、なりSpeed
の中身(数字だったら数字文字列だったら文字列が表示される))
※3 (変数名をSpeedとし 、Speedの中身が10だった場合の例:
"現在の速さは" + Speed.ToString() + "です。"
と書き、『現在の速さは10です。』と表示される。)
※4 (例:"Qiita\n始めました"
と書き、
Qiita
始めました
と表示されます。)
ちなみに、"
の中に書かないとエラーが出るので注意です。
又、Macで『\』を打つにはoption+¥で打てます
##最後に
結構がっつり解説ましたがどうでしょうか?
そして初心者が結構頑張ってほぼ自分向けに書いた初Qiita投稿ですがどうでしょうか?
正直言ってInspectorで見れるから使わない、だから便利も何もない