AddForce#
- ExportRoomPlayerController.AddForce(force, forceMode)#
プレイヤーの Rigidbody に力を与えます
- Parameters:
force (
Vector3
) -- 力の値forceMode (
ExportForceMode
) -- 力のかけ方
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