P2.玉転がし.20「Canvas の Text にアクセスするぞー!」
前回 Set Property したプロパティーを今回は、Get Property して テキスト情報として Canvas(UI )に表示させる。もう書いてしまったが、Set したプロパパティーを Get するのは、Get Property ノードだ。分かりやすい。そして、Canvas にテキストデータを送り込むのが Canvas Set Text ノード。これも直感的に分かってしまうくらい分かりやすい。(Get Property / Canvas Set Text)
Set して Get
オブジェクトにプロパティーを Set したら、今度はそれを利用するためには Get してこないといけない。これはほぼペアと言える組み合わせなので、Set Property ノードと Get Property ノードはペアで覚えよう。
❶ Get Property ノード: オブジェクトに埋め込まれたプロパティーを取り出す。(Value カテゴリ)
❶-1 この欄が空欄なのは、Set Property したオブジェクトが自分自身だろ。そこから取り出すんだから、ここも空欄な訳。(オブジェクト欄空欄=自分自身) もし他のオブジェクトに持たせたプロパティーをとってきたい場合は、空欄のヶ所をクリックしてリストから選択できる。
❶-2 ここに取り出したいプロパティー名を書き入れる。もりろん、"kuruNokori"。本当は、空欄クリックでリストが出て来て欲しいけど、まだ出ないようだなー。今後に期待か。手書きでもいいけど、間違わないようにコピペした方がイイね。すぐ横にあるし。
❷ Canvas Set Text ノード: Canvas にテキストデータを送る。(Canvas カテゴリ)
Canvas カテゴリは寂しいなー。2個しかないぞ。しかもテキスト情報を送るのと、位置を変えるのと2つしかない。ここも今後に期待かな? もっと増えて欲しいなノード。
❷-1 で、in ピン。これがあったら、どっかの out ピンから線がつながってないとダメだからね。意外と最初の時は「なんかこのノードの処理、行われてないんだよなー」ってのが起こる。ノードの in - out 赤ピン接続しっかり確認だ。
❷-2 Element: エレメントっていうのは、Canvas の Outliner 上での名前だ。これも手打ちなんだなー、勝手に Canvas 調べてリストで出してくれれば楽なのにな。
Blender では Outliner にはオブジェクトが並ぶけど、Canvas の Outliner のはオブジェクトとは言わずに、単にエレメントと呼んでるダケ。
❷-3 Text: エレメントが持ってる Text 項目(Name のすぐ下ね。前、"Hello World" っていれたとこ)。ここに表示させたい文字列を入れる。もちろん表示させたい情報は、"kuruNokori" の持っているデータ値(12)だろ。Get Property してきたヤツを繋げばいいよね。簡単だ。ただ、"kuruNokori" は整数値だから、微妙にストリングじゃないのが気になるが、Armory は勝手に変換してくれるみたいだぞ。便利だ。
ここまでで、
前回の分
「
ゲーム開始直後、
このスクリプトが付くオブジェクトの
プロパティー "kuruNokori" に
整数値の12がセットされる。
(kuruNokori = 12)
」
今回の分
「
セットされたプロパティー "kuruNokori" を取り出し (❶)
キャンバスのエレメントのテキストに送る (❷)
」
となる。分かったかな?
では確認してみよう
[▶ Play] すれば、"Hello Worlwd" と表示されていた部分に、"kuruNokori" が持ってる整数値 "12" が表示されるはずだが。
・
・
・
変わらねー。
そう変わらない。なぜなら、今作ったスクリプト "NodeCube" をオブジェクト Cube 君(UI コレクションに作ったあれね)につなげてないからだ。よくあるミス。
Cube 君に Node 用の Trait を追加し、リストから "NodeCube" を選択してオブジェクトとノードトゥリー(スクリプト)を関連付けてくれ。
こういう事ね。
ここで分かるのは、一つのオブジェクトに複数個の Trait を付けることが出来るって事だ。だから、Armory Traits って複数形になってんだな。
/※ 「オブジェクト --- トレイト --- スクリプト」の関係、大事だぞ。 ※/
では再度確認してみよう
今度こそ、[▶ Play] すれば、"Hello Worlwd" と表示されていた部分に、"kuruNokori" が持ってる整数値 "12" が表示されるはずだが。
・
・
・
止まるー。
おいおい。どーした。で、こういう時は、例のボタン([Clean] ボタン)なんだが、これもダメのようだ。で、さらになんかの助けになるかもしれないので、メインメニューの Window > Toggle System Console でコンソールを出してみるんだが、
分かんねー。
ってことで、今日はここまで。次回解決する。
Armory もアルファの時はちゃんと動いてたので、どっか違ったやり方をした部分を戻してやれば動くはず。たぶん、あそこ。それで動くようになればいいけどなー。ダメなら終了だ。
本日の確認
- Set Proterty と Get Property はセットで。
- Canvas Set Text: テキスト情報をキャンバス(UI)のエレメントに送る。
- [Clean] ボタンでだめなら、コンソール。だが、エラーはやっぱり見ても分からんぜー。無駄無駄むだー。
■ やっぱり、頭痛いな。やっぱダメかな。