ユーザ用ツール

サイト用ツール


vci:sample:oncollision:no2

棒で突くと勢いよく飛ぶビリヤードの玉を作る


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

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

オブジェクトが衝突したときの処理になるので「onCollisionEnter」を使用します。

各オブジェクトの設定は次のようになります。
SubItemのGroupIDは0以外で同じ数字にしておきます。
(同じ数字のSubItemはオーナー権が一致し、正しく物理演算が行われる)





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

AddForce(Vector3)はオブジェクトにVector3の力を加えます。

GetUp()でオブジェクトの上向き(ローカルY方向)単位ベクトルを得ることができます。
今回の場合はビリヤードのキューの先端の方向がy方向になっています。

main.lua
function onCollisionEnter(item, hit)
    if (item=="bili_ball" and hit=="bili_q") or (item=="bili_q" and hit=="bili_ball") then
        local bili_ball = vci.assets.GetSubItem("bili_ball")
        local bili_q = vci.assets.GetSubItem("bili_q")
        bili_ball.AddForce(1000 * bili_q.GetUp())
    end
end
vci/sample/oncollision/no2.txt · 最終更新: 2019/05/27 20:40 by navana

ページ用ツール