バーチャルキャスト公式Wiki
メニュー
Steam版
デバイス
アセット
配信
その他
リリース情報
- wiki編集者用ページ
-
以前のリビジョンの文書です
このサンプルは、SwitchのSubitemをUseした時に、Targetが消えたり出たりするサンプルです。
実際にオブジェクトが消えてるわけではなく、縮小する事で消えてるように見せるパターンです。
事前に用意する素材はありません。
Unityのプリミティブを使用します。
基本的にGrabできるSubitemを2つ作ればOKですが、以下ポイントになります。
GroupIDを0以外の値で揃える
transformを変更する際は、所有権が移った状態で行うのがよいです。
GroupIDの仕組みについては を参考にしてください。
ColliderのIsTriggerを有効にする
物理的な接触を行わなくなるので、扱いやすくなります。
rigidbodyのUseGravityを無効にし、IsKinematic有効にする
自由落下がなくなり、空中に固定されるので扱いやすくなります。
-- Target を検索して _Target に格納する local _Target = vci.assets.GetTransform("Target") function onUse(use) -- Useしたアイテムの名前が Switch だった時 if use == "Switch" then -- 小さくなってる場合は大きくする if _Target.GetLocalScale().x < 0.1 then local scale = Vector3.__new(1, 1, 1) _Target.SetLocalScale(scale) end -- 大きくなってる場合は小さくする if _Target.GetLocalScale().x > 0.1 then local scale = Vector3.__new(0.001, 0.001, 0.001) _Target.SetLocalScale(scale) end end end
local _Target = vci.assets.GetTransform(“Target”)
Targetという名前のSubitemを検索し、Subitemの情報を _Target という変数に格納します。
Targetのsubitemの情報は_Targetにアクセスする事で知る事ができます。
_Target.GetLocalScale().x
Targetのx方向の大きさにアクセスする事ができます。
縮小時(非表示)はこの値が0.001になり、拡大時(表示)はこの値が1になります。
なので、この値を比較する事によって、現在拡大されているか、縮小されているかを知る事ができます。
local scale = Vector3._new(1, 1, 1)
_Target.SetLocalScale(scale)
アイテムの大きさはX方向、Y方向、Z方向の3つの値(ベクトル3)を使用します。
Vector3.__new()
で変更したい大きさを作成し_Target.SetLocalScale()
で適用します。
実際にアイテムは消滅するわけではないですが、縮小する事によって消えてるように見えます。
問題点としては、接触の判定自体はなくならないという点と、scaleの値が表示・非表示でしか使えなくなるという点です。
その他に、ポジションを遠くに動かして消してるおうに見せる方法もあります。
作りたい物によって、scaleを変更するか、positionを変更するか使い分ける事になるでしょう。