AddForce#

ExportRoomPlayerController.AddForce(force, forceMode)#

プレイヤーの Rigidbody に力を与えます

Parameters:

ForceMode#

forceMode によって力のかけ方を変更できます。

forceMode

説明

Force

Rigidbodyの質量\({M}[kg]\)を考慮して、物体へ継続的な力を加えます。

Impulse

Rigidbodyの質量\({M}[kg]\)を考慮して、物体へ瞬間的な力を加えます。

Force#

force の値を力 \(F[N]\) として解釈し、\(\frac{F \Delta t}{M}\)によって速度を変更します。 この効果は、前回のupdateからの経過時間に依存します。

Impulse#

force の値を力積 \(I[N \cdot s]\) として解釈し、\(\frac{I}{M}\)によって速度を変更します。 この効果は、前回のupdateからの経過時間に依存しません。

Example#

local localPlayer =  vci.vc.room.GetLocalPlayer()
local playerController = localPlayer.GetRoomPlayerController() -- ローカルプレイヤー以外では nil が返る

-- 斜め前方方向に力を与える
local function addForceToPlayerByKeyboard(button)
    if not button then return end
    local impulse = 10 --[Ns]
    local mass = playerController.GetMass()
    local force = impulse * mass
    local vector = (localPlayer.GetForward() + Vector3.up).normalized
    playerController.AddForce(vector * force, ExportForceMode.Impulse)
end

function update()
    -- 1 キーを押すと斜め前方方向に力を与える
    addForceToPlayerByKeyboard(vci.me.GetButtonInput(1))
end