Language:

サイドバー

バーチャルキャスト公式Wiki

メニュー

デバイス

アプリケーション

アセット

配信

その他

リリース情報

デベロッパー向け


開発環境

GLB

vci:sample:transform:no2

物体を常に回転させる(rotationの変更)


※この記事は「UniVCI-0.15」時点のものです。

サンプルデータ:https://seed.online/items/98bd2438ff0177cd18618c8b420a337a1496668209fcd18f614a58a5eedb8b3b

VCIが表示されている間、常に処理を実行するには「update」を使用します。

回転運動については、Quaternion.AngleAxisを使って指定した軸の周りを回転させます。
今回はY軸の周りを回転させるように「GetUp()」関数を使います。

参考:Quaternion.AngleAxis
https://docs.unity3d.com/ja/2017.4/ScriptReference/Quaternion.AngleAxis.html

1. 新しくGameObjectを作成し、その中にCubeを子にします。
GameObjectの名前は「Rotation_VCI」としていますが、任意の名前でも可です。
Cubeの名前は「Cube」と指定します。Cubeは地面に貫通しないようY座標を1.0に指定します。

2. GameObjectに「VCI Object」コンポーネントをアタッチし、
Cubeに「VCI SubItem」コンポーネントをアタッチします。
この時、「Rigitbody」コンポーネントもアタッチされます。
重力を使用しないため、「Use Gravity」をOFF、「Is Kinematic」をONにします。

3. GameObjectの「VCI Object」コンポーネントのScriptsのSizeを1に指定し、
Nameに「main.lua」を記入、Sourceに以下スクリプトを記入します。

main.lua
local cube = vci.assets.GetTransform("Cube")		--SubItem名をstring型で挿入します
local rotSpeed = 1	--回転速度
 
function updateAll() -- 所有権にかかわらず全ユーザーで呼び出されます
 
    if cube.IsMine then -- 所有者が代表して移動させます
	cube.SetLocalRotation(Quaternion.AngleAxis( rotSpeed, cube.GetUp() ) * cube.GetLocalRotation())
    end
end

各コンポーネントの設定は以下を参照してください。

vci/sample/transform/no2.txt · 最終更新: 2022/09/05 18:02 by pastatto

ページ用ツール