Playmaker Forum

PlayMaker Updates & Downloads => Share New Actions => Topic started by: Lane on August 20, 2014, 09:10:35 AM

Title: Set Hinge Joint Properties (3d)
Post by: Lane on August 20, 2014, 09:10:35 AM
You can now set the Spring, Motor and Limit properties of a Hinge Joint.

We can do the other joints if necessary.

//Edit
// There's actually one already on Ecosystem. Will get sorted, but this one is more fleshed out with tooltips, all of the joint variables and a couple of minor structure changes inline with how the 2d joint actions were done.
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on August 23, 2014, 02:28:49 AM
Thanks for this Lane, it will be great but currently I get:

"Assets/PlayMaker/Actions/SetHingeJointProperties.cs(199,40): error CS1061: Type `UnityEngine.HingeJoint' does not contain a definition for `enableCollision' and no extension method `enableCollision' of type `UnityEngine.HingeJoint' could be found (are you missing a using directive or an assembly reference?)"

Br,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: Lane on August 23, 2014, 09:54:54 AM
What unity version?
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on August 25, 2014, 03:17:15 AM
Oh, yes, I am currently at 4.3.4f1.
I'll try updating to the latest and see how it works with that...
Title: Re: Set Hinge Joint Properties (3d)
Post by: Lane on August 26, 2014, 03:28:18 PM
Did that happen to fix the error?
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on August 27, 2014, 08:59:03 AM
Sorry, I could not update yet. I need a couple of more days.
(some other serious development going on beside my experiments)

Of course I'll comment this thread with any new findings when they finally happen.

Br,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on September 04, 2014, 06:49:13 AM
Finally updated to 4.5.3f3 and the error message is gone.
Thank you for this script Lane.

Will try it out soon.

Br,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on September 06, 2014, 04:19:35 AM
So far I tried setting the "Spring - Target Position" and that one works as expected.

Thanks,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: Lane on September 06, 2014, 09:45:09 AM
Cool =)
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on September 08, 2014, 01:12:03 AM
I just found one thing that needs fixing.
I am continuously setting some spring joint properties, then when the game object is destroyed the application stops with this error:

Code: [Select]
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.GameObject.GetComponent[HingeJoint] () (at C:/BuildAgent/work/d63dfc6385190b60/artifacts/EditorGenerated/UnityEngineGameObject.cs:29)
HutongGames.PlayMaker.Actions.SetHingeJointProperties.SetProperties () (at Assets/PlayMaker/Actions/SetHingeJointProperties.cs:159)
HutongGames.PlayMaker.Actions.SetHingeJointProperties.OnUpdate () (at Assets/PlayMaker/Actions/SetHingeJointProperties.cs:152)
HutongGames.PlayMaker.FsmState.OnUpdate ()
HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state)
HutongGames.PlayMaker.Fsm.Update ()
PlayMakerFSM.Update ()

For example iTweenScale (which I also use continuously on the same game object) does not cause this crash just stops in the state.
Please fix this.

Thanks in advance,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on July 18, 2015, 07:25:29 AM
Hi Lane,

I just got this error in Unity 5.1.1f1:
Code: [Select]
Assets/PlayMaker Custom Actions/Physics/SetHingeJointProperties.cs(270,41): error CS0619: `UnityEngine.JointLimits.minBounce' is obsolete: `minBounce and maxBounce are replaced by a single JointLimits.bounciness for both limit ends.'
So I changed these two lines:
Code: [Select]
//_limits.minBounce = minBounce.Value;
_limits.bounciness = minBounce.Value;

//_limits.maxBounce = maxBounce.Value;
_limits.bounciness = maxBounce.Value;

Hope it will work just like before.

Please update it here:
https://github.com/jeanfabre/PlayMakerCustomActions_U3/blob/master/Assets/PlayMaker%20Custom%20Actions/Physics/SetHingeJointProperties.cs
 if this is the proper way to fix the problem.

Br,
szomaza
Title: Re: Set Hinge Joint Properties (3d)
Post by: Bqlqzs on July 18, 2015, 05:31:51 PM
This action is very cool, but at now, I have a very interesting problem with this.

I like to control the motor, with set "target velocity"

I can set the value and the new value is show in the editor inspector but not moving the object.

If I just edit the value with my mouse or type numbers in the inputfield in the inspector the object is moving, so my gameobject setup is good.

I also tried to control this with c# script, but it also not moving, just filling up the input field.

Anybody know any solution?
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on September 06, 2015, 03:54:14 AM
So I moved to Unity 5.1 with my project and this action does not work anymore.
(In Unity 4.6 it still works perfectly.)

All I am setting is the Spring Target Position. I can still see the value being set in Playmaker editor as it runs but the object does not rotate anymore like it does in Unity 4.6.

Is this because?:
https://unity3d.com/unity/whats-new/unity-5.1 (https://unity3d.com/unity/whats-new/unity-5.1)
Unity 5.1 release notes under Backwards Compatibility Breaking Changes
Physics: Modifying the HingeJoint Limit, Motor, Spring properties will no longer automatically enable the them. You now need to explicitly set HingeJoint.useLimit, useMotor, useSpring.


If this is the problem, I would really appreciate if somebody could modify it.

Thanks in advance,
szomaza

Edit:
There is also talk about these changes here:
http://forum.unity3d.com/threads/5-1-hingejoint-oddities.332115/ (http://forum.unity3d.com/threads/5-1-hingejoint-oddities.332115/)
Unfortunately I am having problems (since moving to Unity 5.1) with this too:
"... the "autoConfigureConnectedAnchor" option is setting the connected object to WorldCoordinates now instead of LocalCoordinates, which makes things warp around crazily too, if you have it enabled."
Title: Re: Set Hinge Joint Properties (3d)
Post by: szomaza on September 13, 2015, 05:09:55 AM
I managed to fix the 2nd problem ("the "autoConfigureConnectedAnchor" option is setting the connected object to WorldCoordinates now instead of LocalCoordinates")
by disabling this and setting the vector3 coordinate myself.
More FSM coding work but it seems to work as it did in Unity 4.6 before.

Still having problems with the Hinge Joint Spring target position setting.
I'll make a test scene...

Edit: Setting the spring's target position rotates the object around the hinge properly in the test scene, but not in my project. So there seems to be no problem with this script, as I thought before as it sets the spring target position, just my object doesn't move for some reason.
Title: Re: Set Hinge Joint Properties (3d)
Post by: Aaddiction on April 09, 2016, 12:25:37 PM
Could this action be updated in the Ecosystem. Currently it's not working on Unity 5.2. Thank you!
Title: Re: Set Hinge Joint Properties (3d)
Post by: Aaddiction on April 09, 2016, 12:28:39 PM
Hi Lane,

I just got this error in Unity 5.1.1f1:
Code: [Select]
Assets/PlayMaker Custom Actions/Physics/SetHingeJointProperties.cs(270,41): error CS0619: `UnityEngine.JointLimits.minBounce' is obsolete: `minBounce and maxBounce are replaced by a single JointLimits.bounciness for both limit ends.'
So I changed these two lines:
Code: [Select]
//_limits.minBounce = minBounce.Value;
_limits.bounciness = minBounce.Value;

//_limits.maxBounce = maxBounce.Value;
_limits.bounciness = maxBounce.Value;

Hope it will work just like before.

Please update it here:
https://github.com/jeanfabre/PlayMakerCustomActions_U3/blob/master/Assets/PlayMaker%20Custom%20Actions/Physics/SetHingeJointProperties.cs
 if this is the proper way to fix the problem.

Br,
szomaza

Sorry, but I don't see those lines. Where are they to replace?

Thanks and sorry for the double post.
Title: Re: Set Hinge Joint Properties (3d)
Post by: jeanfabre on April 15, 2016, 02:32:42 AM
Hi,

 It's done, update it from the Ecosystem and the new limits properties will be presented.

https://twitter.com/JeanAtPlayMaker/status/720862269169467392

Bye,

 Jean