Playmaker Forum
PlayMaker Help & Tips => PlayMaker Help => Topic started by: Grendelbiter on April 19, 2017, 09:14:15 AM
-
I have a character with a rigidbody driven by a navmesh agent. I want to get rotation speed so I can set animations. I have an FSM on the character with the rb, just one state with Get Angular Velocity for now and debug turned on. None of the values change when I move my character.
-
I should maybe mention that this is a generated UMA character. I've tried all kinds of methods to get my character animated with no success. Why are there no Tutorials for that? It seems like half the questions here are about moving characters.
Whie poking around I found an action called Nav Mesh Agent Animator synchronizer. I put it in an FSM of it's own but nothing happens. Can someone explain how to use this action?
-
Hi,
I can't test at the moment, but probably you object is not rotating by force.
Try by using "Set Angular Velocity" to the object en then use "Get Angular Velocity"
then you can see if it works.
I am not sure how to calculate the rotating speed if it is not by force, i will do some testing when i get home.
-
Thanks for your reply. I almost got it working. I'm trying to recreate the script from the navmesh mecanim movement examples. My character is running now only turning too slow but I have an idea how to fix it.
-
I think I found a bug. I'm trying to Get Property desiredVelocity.item from the navmesh agent and unity is piling up these errors:
TargetParameterCountException: parameters do not match signature
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:188)
System.Reflection.MonoProperty.GetValue (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] index, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoProperty.cs:297)
System.Reflection.MonoProperty.GetValue (System.Object obj, System.Object[] index) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Reflection/MonoProperty.cs:283)
HutongGames.PlayMaker.ReflectionUtils.GetMemberValue (System.Reflection.MemberInfo member, System.Object target) (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/ReflectionUtils.cs:304)
Rethrow as ArgumentException: MemberInfo has index parameters
Parameter name: member
HutongGames.PlayMaker.ReflectionUtils.GetMemberValue (System.Reflection.MemberInfo member, System.Object target) (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/ReflectionUtils.cs:308)
HutongGames.PlayMaker.ReflectionUtils.GetMemberValue (System.Reflection.MemberInfo[] memberInfo, System.Object target) (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/ReflectionUtils.cs:285)
HutongGames.PlayMaker.FsmProperty.GetValue () (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmProperty.cs:419)
HutongGames.PlayMaker.Actions.GetProperty.OnUpdate () (at Assets/PlayMaker/Actions/GetProperty.cs:36)
HutongGames.PlayMaker.FsmState.OnUpdate () (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/FsmState.cs:256)
HutongGames.PlayMaker.Fsm.UpdateState (HutongGames.PlayMaker.FsmState state) (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:2618)
HutongGames.PlayMaker.Fsm.Update () (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/Classes/Fsm.cs:1865)
PlayMakerFSM.Update () (at c:/Users/Alex/Documents/Unity/Playmaker/Projects/Playmaker.source.unity/Assets/PlayMaker/PlayMakerFSM.cs:509)
shouldn't .item be a vector3, not a float?
Edit: also, am I guessing right that .item would be the same as typing out agent.desiredVelocity?
-
Hi,
yes, you are right, something is odd with this Unity property, Unfortunatly, I don't think anything is possible on our end for this since Unity doesn't expose it properly, if you check for example .DEstination, it exposes "vector3" properly.
Also, I strongly advice to get the pathfinding package from the Ecosystem and use the dedicated actions for it, there is one to get the desiredVelocity.
(http://i.imgur.com/5viiAgO.png)
Bye,
Jean