Thank you for your response. In answer to your questions:
1. Have u set the pivot of your flipper to the edge? Cuz rotation is based on the pivot
Yes, the flipper is the child of the flipper_hinge, and moved to align the flipper_hinge pivot to the correct place. The flipper_hinge has a rigidbody and Playmaker FSM on it, the flipper itself only has a collider and physics material.
2. If you do, make sure to set the rigidbody2d to kinematic so it wont affected by gravity
Yes, I have the rigidbody 2D set to kinematic.
3. There is a command called Ease Float, basically it is gradually increased your float variable within certain time
Okay, this may be what I'm looking for. I'll see if I can find Ease Float in the Playmaker actions and use it instead of the DO Tween.
4. The rotation of the flipper will be on Z coordinate
Yes, I'm rotating on the correct axis.
So we go something like this:
State 1: Get key down
State 2 : Rotate flipper.rotation.z = variable myRotation
Ease float myRotation variable from (eg:0 to 30) in 0.05 sec, when finished back to state 1
In my case I actually have 4 states:
(1) Wait for key down
(2) Rotate flipper up
(3) Wait for key up (release)
(4) Rotate flipper back down
And back to state 1. All that seems to work fine but I'll try the Ease Float action and see if it helps. Thanks for your answer.