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

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

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

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

Q&A

解決済

2回答

7810閲覧

UnityのuGUIでtextを動かすやり方を教えて下さい

affluenceyou

総合スコア44

Unity

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

0グッド

0クリップ

投稿2015/06/26 14:49

編集2015/06/26 15:00

Unity5でのuGUIの使い方について質問です。とても初歩的な質問だと思いますが、教えていただけると幸いです。

現在、一定時間ごとにtextが落ちてくる処理を作ろうとしています。
初めはcanvas(screen space)内のTextをプレファブ化して、単純に落とそうと思ったのですが上手く行きませんでした。

lang

1public GameObject formulaPrefab; 2private Text formulaText; 3 4void createMath(){ 5 Instantiate (formulaPrefab,startPosition,formulaPrefab.transform.rotation); 6 formulaText = formulaPrefab.GetComponent<Text> (); 7 formulaText.text = "200"; 8 Debug.Log (formulaText.text); 9 formulaPrefab.GetComponent<Text> ().text = formulaText.text; 10 11 formulaPrefab.transform.Translate (0.0f,-0.5f,0.0f); 12 }

ログにはしっかりと’200’と出てきますが、画面上にはTextは出てきません。これはなぜでしょうか?

次に、canvas(World Space)を作り、その中にTextを作りました。このcanvas全体をプレファブ化して、スクリプトでInstatntiateをすることは可能なのでしょうか? 現在、このcanvasを画像に合うように縮小したら、textが小さすぎてぼやけてしまいます。

uGUIを使ったやり方でなくても構いません。
とりあえず、Textをスクリプトから自由に扱える方法を教えていただけると幸いです。
よろしくお願いします!!

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

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

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

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

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

guest

回答2

0

動かない、というのがどう動かないのかが分かりません。

とりあえず空のオブジェクトにTextMeshを乗せて、Textに文字を入れれば文字が表示されるかと思います。
.textで内容を変更することも当然可能です。
position,rotationなども普通に操作できます。

再生時のscene画面も確認してください。
ゲーム画面に表示されていないだけなのか、生成すらされていないのか。

アンチエイリアスの話とかはちょっと分からない(そこまでさわってない)ので、私では答えられません。
軽く触った感じですとFontサイズが影響する様ですが、詳しい事は何も言えません。

とりあえず言えることは特に何かが違う訳でもなく、普通にprefabを生成するのと同じです。

投稿2015/06/26 15:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

Textをオブジェクトとして扱うなら、TextMeshを使った方がいいんじゃないでしょうか?
uGUIのtextはUI用ですので、なんとなく使い所が違う気がします。

まともにさわった事がないので詳しくないですが、
MeshRendererのオブジェクトですので、普通の3Dオブジェクトと同じ扱いだと思います。

投稿2015/06/26 15:08

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2015/06/26 15:14

MainCameraの位置を元に生成してしまっている。 canvasの中に生成していない。 canvasの中で、MainCameraの位置に生成している(Canvasの枠外) のどれか、もしくは複数だと思います。
affluenceyou

2015/06/26 15:27

ありがとうございます! やはりUI用の機能なのですね。 public GameObject formulaPrefab;(TextMesh) void createMath(){ Instantiate (formulaPrefab,startPosition,formulaPrefab.transform.rotation); Debug.Log (formulaPrefab); formulaPrefab.transform.Translate(0.0f,-0.5f,0.0f); } 今度はこれを実行してみたのですが、動きません。formulaPrefabにはTextMeshのオブジェクトが入っているのですが... なにか問題があるのでしょうか・・・?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問