Forums › 💬 NodeCanvas › 🗨️ General Discussion › 2d compatibility/unity 2d › Reply To: 2d compatibility/unity 2d
Hello,
Here is a script to do that. I’ve added more cases so you can do extra stuff when the direction change. Just add it on your sprite gameobject and set the PolyNavAgent reference.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
using UnityEngine; using System.Collections; public class Flipper : MonoBehaviour { public PolyNavAgent agent; private Vector2 lastDir; private float originalScaleX; void Awake(){ originalScaleX = transform.localScale.x; } void Update() { var dir = agent.movingDirection; var x = Mathf.Round(dir.x); var y = Mathf.Round(dir.y); y = Mathf.Abs(y) == Mathf.Abs(x)? 0 : y; dir = new Vector2(x, y); if (dir != lastDir){ if (dir == Vector2.zero){ Debug.Log("IDLE"); } if (dir.x == 1){ Debug.Log("RIGHT"); var scale = transform.localScale; scale.x = originalScaleX; transform.localScale = scale; } if (dir.x == -1){ Debug.Log("LEFT"); var scale = transform.localScale; scale.x = -originalScaleX; transform.localScale = scale; } if (dir.y == 1){ Debug.Log("UP"); } if (dir.y == -1){ Debug.Log("DOWN"); } lastDir = dir; } } } |
Let me know if this works for you.
Cheers!
