« Unity で文字列を表示しようとしてイキナリつまづいた人のブログ記事はコチラです | トップページ | Unity で固定文字列を表示するようにして Nreal グラスで確認する »

2022.08.29

Unity で文字列表示しようとして躓いた理由を調べてみた

| |コメント (0)

 このエントリーをはてなブックマークに追加

どうも、かげさんです(^^)/
あなたがこの記事を読んでいるのは何回目でしょうか?
初めての方、いらっしゃい!
複数回目の方、再訪問ありがとです(・∀・)

Nreal グラス上に文字列を表示したいと思い、Unity での文字列表示を先に行うことにしました。

が、「Unity で文字列を表示しようとしてイキナリつまづいた人のブログ記事はコチラです」という記事のように躓いてしまいました。

今回は、その続きです。

おさらい

参考記事「【Unity入門】1分でTextを表示しよう!スコアの表示まで簡単解説!」を元にして作業していました。

Ui_text01

当初、Hierarchy ビューで右クリックメニュー「UI」-「Text」を選択するとオブジェクトとして新たにCanvas」ツリーが作られ、そこに「Text」が作られ、「EventSystem」も新たに作られて、計3つのオブジェクトが作られる想定でした。

Ui_text02

ところが作られたのは「Text」だけで、新しいツリーとして作られる「Canvas」の下ではなく、VideoCaptureExample のツリーの「Canvas」配下の一番最後に追加されました。

日が変わる前に記事を投稿しようとしていて時間がなかったところに想定外の動きをしたせいで、ちょっとパニクってしまいタイムオーバーになったというのが、前回の記事が投稿された経緯です。(;^_^A

Canvas について調べてみた

想定外のツリーに作られてしまったものの、よく見ると「Canvas」配下に「Text」があります。

なので「Canvas」について調べてみたところ「【Unity】Canvasについて理解してみよう」という記事にたどり着きました。

この記事によると、下記のことが書かれていました。

  1. Canvas とは、UI オブジェクトの親となるオブジェクトである
  2. Unity の UI システムである uGUI で Text や Button を作るときは、Canvas コンポーネントがアタッチされているオブジェクトが必要
  3. Canvas を配置していない状態で Text や Button を作ると Canvas が自動生成される
  4. Canvas がついたオブジェクトが生成されると EventSystem も自動生成される

つまり、最初の参考記事「【Unity入門】1分でTextを表示しよう!スコアの表示まで簡単解説!」では、Canvas 配置していない状態Text を作ったので、3に該当して Canvas が自動生成された。それにより 4 にも該当して EventSystem が自動生成された。

ということで、「Canvas」ツリーが作られ、そこに「Text」が作られ、「EventSystem」が作られるということだったようです。

また、かげさんの場合、既に「VideoCaptureExample」のツリーに「Canvas」がある状態でした。

そこに Text を作ったので、「VideoCaptureExample」ツリーの「Canvas」が2に該当する扱いとなって、「VideoCaptureExample」ツリーの「Canvas」に「Text」が追加された。Canvas が既に配置されているので3には該当しなかった。Canvas の自動生成はされなかったので、4にも該当しなかったということみたいですね。

なるほど、謎は解けた!

ということで、早速、本来目的のことをやりたいところなんだが、「Unity で固定文字列を表示するようにして Nreal グラスで確認する」に続く。

ここまではOKだ


 このエントリーをはてなブックマークに追加

| |コメント (0)

このエントリーへのリンク

このエントリーのリンクを入れるHTML:

コメント

このブログの新着コメントをRSSリーダに登録する為のxml




←名前とメールアドレスは必須です。
URLも記入すれば、URLのみが公開されます。
メールアドレスのみですと、メールアドレスが公開されてしまいますので、御注意ください。

↓コメント本文では、「a href」「b」「i」「br/」「p」「strong」「em」「ul」「ol」「li」「blockquote」「pre」のタグが使えます。絵文字をクリックすると、本文にタグを挿入できます。