ユーザ用ツール

サイト用ツール


vci:sample:ontrigger:no1

ボールが箱の中に入ったときや出たときに色を変える


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

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

SubItemにCollider(Trigger)が接触したときに処理を実行するには「onTriggerEnter」を、
Collider(Trigger)が離れたときに処理を実行するには「onTriggerExit」を使用します。

1. 新しくGameObjectを作成し、その中にCube、Sphere、Planeを入れ子にします。

GameObjectの名前は「TriggerEnterExit_VCI」としていますが、任意の名前でも可です。
その他は以下のように設定します。

  • Cube(箱): 「Cube」 Y座標を1.0
  • Sphere(ボール): 「Ball」 Y座標を2.0
  • Plane(地面): 「Plane」 Y座標を0.0

2. Cubeの色を変更するため「TriggerMaterial」Materialファイルを新規作成します。
作成したTriggerMaterialを「Cube」のMaterialとして設定します。

3. GameObjectに「VCI Object」コンポーネントをアタッチし、
Cube、Ball、Planeに「VCI SubItem」コンポーネントをアタッチします。
この時、「Rigitbody」コンポーネントもアタッチされます。
CubeとPlaneは重力を使用しないため、「Use Gravity」をOFF、「Is Kinematic」をONにします。
Ballは物理挙動させるため、「Use Gravity」をON、「Is Kinematic」をOFFにします。

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

main.lua
local green = Color.__new(0,1,0,0.5)
local red = Color.__new(1,0,0,0.5)
 
function onTriggerEnter(item, hit)
    if item == "Ball" and hit == "Cube" then
        vci.assets._ALL_SetMaterialColorFromName("TriggerMaterial", red)
    end
end
function onTriggerExit(item, hit)
    if item == "Ball" and hit == "Cube" then
        vci.assets._ALL_SetMaterialColorFromName("TriggerMaterial", green)
    end
end
vci/sample/ontrigger/no1.txt · 最終更新: 2019/05/27 20:38 by navana

ページ用ツール