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
usingUnityEngine;
usingSystem.Collections;
publicclassFlipper:MonoBehaviour{
publicPolyNavAgent agent;
privateVector2 lastDir;
privatefloatoriginalScaleX;
voidAwake(){
originalScaleX=transform.localScale.x;
}
voidUpdate(){
vardir=agent.movingDirection;
varx=Mathf.Round(dir.x);
vary=Mathf.Round(dir.y);
y=Mathf.Abs(y)==Mathf.Abs(x)?0:y;
dir=newVector2(x,y);
if(dir!=lastDir){
if(dir==Vector2.zero){
Debug.Log("IDLE");
}
if(dir.x==1){
Debug.Log("RIGHT");
varscale=transform.localScale;
scale.x=originalScaleX;
transform.localScale=scale;
}
if(dir.x==-1){
Debug.Log("LEFT");
varscale=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!
Join us on Discord: https://discord.gg/97q2Rjh
Login
Register
By registering on this website you agree to our Privacy Policy.