--the below script will make a UI Text element display this GameObjects Hinge Joint Motor properties
--[Add "thetext" and "thehingejoint" reference to the Scripting Runtime component]
thisObject = Space.Host.ExecutingObject
text = Space.Host.GetReference("thetext").UIText
hingejoint = Space.Host.GetReference("thehingejoint").HingeJoint
function OnUpdateFunction()
motor = hingejoint.Motor
text.Text = motor.ToString()
end
thisObject.OnUpdate(OnUpdateFunction)
New
static SJointMotor New (float targetVelocity, float force, bool freeSpin)
Creates a new SJointMotor with the given targetVelocity, force, freeSpin.
--the below script will change all Hinge Joint Motor properties to 0 when clicked
--[Add "thehingejoint" reference to the Scripting Runtime component]
thisObject = Space.Host.ExecutingObject
hingejoint = Space.Host.GetReference("thehingejoint").HingeJoint
function OnClickFunction()
motor = hingejoint.Motor
hingejoint.Motor = motor.New(0,0,false)
end
thisObject.AddClickable()
thisObject.Clickable.OnClick(OnClickFunction)
Properties
TargetVelocity
float TargetVelocityget
The motor will apply a force up to force to achieve targetVelocity.
--the below script will make a slider change a Hinge Joint Motor TargetVelocity property
--[Add "theslider" and "thehingejoint" reference to the Scripting Runtime component]
slider = Space.Host.GetReference("theslider").UISlider
hingejoint = Space.Host.GetReference("thehingejoint").HingeJoint
OVC = function()
motor = hingejoint.Motor
motor.TargetVelocity = (slider.Value * 10.0) -- from 0.0 to 10.0
hingejoint.Motor = motor
end
slider.OnValueChanged(OVC)
--the below script will make a slider change a Hinge Joint Motor Force property
--[Add "theslider" and "thehingejoint" reference to the Scripting Runtime component]
slider = Space.Host.GetReference("theslider").UISlider
hingejoint = Space.Host.GetReference("thehingejoint").HingeJoint
OVC = function()
motor = hingejoint.Motor
motor.Force = (slider.Value * 10.0) -- from 0.0 to 10.0
hingejoint.Motor = motor
end
slider.OnValueChanged(OVC)
FreeSpin
bool FreeSpinget
If freeSpin is enabled the motor will only accelerate but never slow down.
--the below script will toggle Hinge Joint Motor FreeSpin property
--[Add "thehingejoint" reference to the Scripting Runtime component]
thisGameObject = Space.Host.ExecutingObject
hingejoint = Space.Host.GetReference("thehingejoint").HingeJoint
function OnClickFunction()
motor = hingejoint.Motor
motor.FreeSpin = not motor.FreeSpin
hingejoint.Motor = motor
end
thisGameObject.AddClickable()
thisGameObject.Clickable.OnClick(OnClickFunction)