結論
位置を入れる階層をチェックしよう。
位置はサブアイテムより下の階層だけに入れよう。
背景
VR配信・SNSサービスのバーチャルキャストでは、他のVRSNSに見られない仕組みとしてVCIというものがあります。VCIはバーチャル空間で取り扱えるアイテムであり、好きな場所で好きなタイミングで取り出すことができ、その挙動はスクリプトを用いて制御することでインタラクティブな効果を奏することができます。
そのVCIを制作するにあたって、制作の最初の段階で(特に初心者に多い)結構な割合で作ったはずのVCIを呼び出しても出てこない(見つけられない)事が起きます。
本記事ではこの現象に対する事例分けをし、それぞれの対処方法を紹介し、、、たいのですが、結構多岐にわたるので、そのうちの一つをご説明します。
作者のモチベーションが続けばもっと書きます
対象
all user(主に初心者)
症状
- 目の前に出てくることを期待していたものが出現しない
- そもそも出てこない
- VCIが変なところに出現する
等
原因
位置を入れる階層を間違えてる
どういうことか
VCIを出力する際に、GameObjectの階層(サブアイテムの階層)に入れられているTransformの値はすべて無視されます。
そのため、VCIが消失その2にで紹介したY=1に設定しようとして、GameObjectの階層にY=1を入れてしまうと、unity上では位置が動いているのに、バーチャルキャストで取り出した際にやはり地面に出てしまっていることがあります。
解決策
単純にGameObjectのtransformの値を確認しましょう。ここに値が入っていて良いことはあまりないので、(0,0,0)になっているか確認する癖をつけるといいです。
そして、上図のように値を入れて再度確認しましょう。
ちなみに
わけも分からず矢印(unityで出てくる三色の矢印)を弄って位置を設定していると、はるか上に行ってしまうパターンもあります(1敗)
後ろに出てくることもあります(1敗)
床の下にめり込むこともあります(2敗くらい、、、たぶん、、、)
やはり透明な背景で落ち着いて探すのが望ましいです。
そして、こんなときもやはり適当なcubeが入っているとロストしにくいです。