I get the distance from Get Distance, but how can I use that distance to tell the cube to move when player gets near?
Hi slipside, welcome aboard
As for your question, IMHO you're taking the wrong (or, to be more precise, hardest) route. All you need is to add a collider to the cube (spherical, cubic, whatever suits your will) and check the "trigger" checkbox in Unity's inspector. As a trigger the collider won't "block" the player movement, which's probably what you want.
Inside PlayMaker one of the builtin events is exactly TRIGGERENTER, which's fired everytime one object (generally the one attached to the state machine) collides with a trigger collider. Make that event drive the FSM execution to another state where you push the box away from the player. As for actually getting the direction, you can try a raycast (https://hutonggames.fogbugz.com/default.asp?W492
), if it's fired by the player you won't even have to transform it like what tobbeos suggested. Actually you can skip the triggerenter event entirely and just use raycast with the distance you want, having it fired all the time it's costlier than just once (of course) but if you don't have many objects in your scene and keep the distances low you can get away with it just fine.
You can get as fancy as taking the player speed (supposing it's variable) at the moment of collision (using Get Speed) and applying that as the force component in Z