Wizard Astar fix

This commit is contained in:
KrolMel 2023-01-02 19:31:45 +01:00
parent 3aedf89a34
commit de82e91d9f
6 changed files with 59 additions and 22 deletions

View File

@ -490,6 +490,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!58 &8620313 --- !u!58 &8620313
CircleCollider2D: CircleCollider2D:
@ -1165,6 +1166,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!114 &68076409 --- !u!114 &68076409
MonoBehaviour: MonoBehaviour:
@ -1556,6 +1558,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!50 &112145426 --- !u!50 &112145426
Rigidbody2D: Rigidbody2D:
@ -2782,7 +2785,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 242009510} m_GameObject: {fileID: 242009510}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -21.69, y: 21.69, z: 10} m_LocalPosition: {x: -18.75, y: 21.69, z: 10}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 184660453} m_Father: {fileID: 184660453}
@ -2834,7 +2837,7 @@ MonoBehaviour:
chaseRadius: 6 chaseRadius: 6
attackRadius: 0.55 attackRadius: 0.55
homePosition: {fileID: 1474164377} homePosition: {fileID: 1474164377}
roundingDistance: 0 roundingDistance: 0.06
anim: {fileID: 0} anim: {fileID: 0}
other: {fileID: 0} other: {fileID: 0}
inRange: 0 inRange: 0
@ -2912,6 +2915,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!58 &242009518 --- !u!58 &242009518
CircleCollider2D: CircleCollider2D:
@ -21426,6 +21430,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!114 &340745814 --- !u!114 &340745814
MonoBehaviour: MonoBehaviour:
@ -28021,6 +28026,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!50 &641696204 --- !u!50 &641696204
Rigidbody2D: Rigidbody2D:
@ -28395,6 +28401,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!95 &682072032 --- !u!95 &682072032
Animator: Animator:
@ -40901,6 +40908,7 @@ MonoBehaviour:
worldPosition: {x: 0, y: 0, z: 0} worldPosition: {x: 0, y: 0, z: 0}
gridPosition: {x: 0, y: 0} gridPosition: {x: 0, y: 0}
isChasing: 0 isChasing: 0
point: {fileID: 0}
path: [] path: []
--- !u!50 &1072778926 --- !u!50 &1072778926
Rigidbody2D: Rigidbody2D:
@ -44843,7 +44851,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1474164376} m_GameObject: {fileID: 1474164376}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -21.71, y: 21.61, z: 0} m_LocalPosition: {x: -14.45, y: 24.48, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 166697418} m_Father: {fileID: 166697418}
@ -150475,7 +150483,7 @@ GameObject:
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: -5442936267250999957, guid: 0000000000000000d000000000000000, type: 0} m_Icon: {fileID: -5442936267250999957, guid: 0000000000000000d000000000000000, type: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 4294967295 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!4 &2105401425 --- !u!4 &2105401425
Transform: Transform:
@ -150485,7 +150493,7 @@ Transform:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2105401424} m_GameObject: {fileID: 2105401424}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -21.71, y: 17.02, z: 0} m_LocalPosition: {x: -23.27, y: 17.59, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 166697418} m_Father: {fileID: 166697418}

View File

@ -39520,11 +39520,11 @@ PrefabInstance:
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3} - target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3}
propertyPath: m_LocalPosition.x propertyPath: m_LocalPosition.x
value: -1.9412931 value: -1.53
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3} - target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3}
propertyPath: m_LocalPosition.y propertyPath: m_LocalPosition.y
value: -2.068871 value: -3.19
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3} - target: {fileID: 4759712171538235753, guid: 417d111e604a8124cb960805d809e513, type: 3}
propertyPath: m_LocalPosition.z propertyPath: m_LocalPosition.z

View File

@ -15,7 +15,7 @@ public class FollowingPatrollingEnemy : Enemy
public float attackRadius; public float attackRadius;
public Transform homePosition; public Transform homePosition;
public float roundingDistance; public float roundingDistance = 0.2f;
private Rigidbody2D myRigidbody; private Rigidbody2D myRigidbody;
public Animator anim; public Animator anim;
public GameObject other; public GameObject other;
@ -70,6 +70,8 @@ public class FollowingPatrollingEnemy : Enemy
anim = GetComponent<Animator>(); anim = GetComponent<Animator>();
target = GameObject.FindWithTag("Player").transform; target = GameObject.FindWithTag("Player").transform;
other = GameObject.FindWithTag("Player"); other = GameObject.FindWithTag("Player");
roundingDistance = 1.3f;
} }
// Update is called once per frame // Update is called once per frame
@ -136,11 +138,15 @@ public class FollowingPatrollingEnemy : Enemy
if (Vector2.Distance(transform.position, path[currentPoint].position) > roundingDistance) if (Vector2.Distance(transform.position, path[currentPoint].position) > roundingDistance)
{ {
StopAllCoroutines(); //transform.position = Vector2.MoveTowards(transform.position, path[currentPoint].position, moveSpeed * Time.deltaTime);
transform.position = Vector2.MoveTowards(transform.position, path[currentPoint].position, moveSpeed * Time.deltaTime); agent.point = path[currentPoint].position;
agent.FindPoint();
StartCoroutine(agent.FollowPath());
} }
else else
{ {
Debug.Log("Change");
changeGoal(); changeGoal();
} }
} }
@ -226,6 +232,7 @@ public class FollowingPatrollingEnemy : Enemy
private void changeGoal() private void changeGoal()
{ {
Debug.Log("changeGoal Goal");
if (currentPoint == path.Length - 1) if (currentPoint == path.Length - 1)
{ {
currentPoint = 0; currentPoint = 0;
@ -236,5 +243,6 @@ public class FollowingPatrollingEnemy : Enemy
currentPoint++; currentPoint++;
currentGoal = path[currentPoint]; currentGoal = path[currentPoint];
} }
Debug.Log(currentPoint);
} }
} }

View File

@ -81,17 +81,27 @@ public class NPCFollowing : MonoBehaviour
} }
else if (approaching) else if (approaching)
{ {
//start dialogue here we want uga bunga //start dialogue here
gameObject.GetComponent<NPC>().State = NPCStateEnum.Talking; gameObject.GetComponent<NPC>().State = NPCStateEnum.Talking;
agent.path.Clear(); // if we are able to talgk we dont want go go further player
} }
} }
else if (!approaching && isAfterAction) else if (!approaching && isAfterAction)
{ {
Debug.Log(Vector2.Distance(transform.position, homePosition));
Debug.Log(homePosition);
if (Vector2.Distance(transform.position, homePosition) > 0.05) if (Vector2.Distance(transform.position, homePosition) > 0.05)
{ {
transform.position = Vector2.MoveTowards(transform.position, homePosition, 2 * Time.deltaTime); //transform.position = Vector2.MoveTowards(transform.position, homePosition, 2 * Time.deltaTime);
agent.point = homePosition;
agent.FindPoint();
StartCoroutine(agent.FollowPath());
} }
else else
{ {

View File

@ -12,6 +12,8 @@ public class AStarPathfindingAgent : MonoBehaviour
public bool isChasing; public bool isChasing;
private Animator myAnim; private Animator myAnim;
public Vector3 point;
public List<Node> path; public List<Node> path;
// Start is called before the first frame update // Start is called before the first frame update
@ -37,8 +39,16 @@ public class AStarPathfindingAgent : MonoBehaviour
public void FindPath() public void FindPath()
{ {
Pathfinder.FindPath(transform.position,Pathfinder.Player.position, this); var player = FindObjectOfType<Player>().gameObject;
point = player.transform.position;
FindPoint();
}
public void FindPoint()
{
Pathfinder.FindPath(transform.position, point, this);
} }
public IEnumerator FollowPath() public IEnumerator FollowPath()
@ -60,7 +70,7 @@ public class AStarPathfindingAgent : MonoBehaviour
{ {
currentWorldPosition = transform.position; currentWorldPosition = transform.position;
//if (transform.position == currentWaypoint.worldPosition) //if (transform.position == currentWaypoint.worldPosition)
if (Vector3.Distance(transform.position, currentWaypoint.worldPosition)<0.01f) if (Vector3.Distance(transform.position, currentWaypoint.worldPosition)<0.001f)
{ {
targetIndex++; targetIndex++;
bool reachedPosition = targetIndex >= path.Count; bool reachedPosition = targetIndex >= path.Count;
@ -74,11 +84,11 @@ public class AStarPathfindingAgent : MonoBehaviour
Vector3 current = transform.position; Vector3 current = transform.position;
Vector3 target = currentWaypoint.worldPosition; Vector3 target = currentWaypoint.worldPosition;
if (Pathfinder.Player.position.x < current.x) if (point.x < current.x)
{ {
myAnim.SetBool("Left", true); myAnim.SetBool("Left", true);
} }
if (Pathfinder.Player.position.x >= current.x) if (point.x >= current.x)
{ {
myAnim.SetBool("Left", false); myAnim.SetBool("Left", false);
} }

View File

@ -4,13 +4,13 @@ using UnityEngine;
public class Pathfinding : MonoBehaviour public class Pathfinding : MonoBehaviour
{ {
public Transform Player; // public Transform Player;
public NodeMap Map; public NodeMap Map;
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
Player = FindObjectOfType<Player>().transform; //Player = FindObjectOfType<Player>().transform;
} }
// Update is called once per frame // Update is called once per frame
@ -29,6 +29,7 @@ public class Pathfinding : MonoBehaviour
while (openSet.Count > 0) { while (openSet.Count > 0) {
Node node = openSet[0]; Node node = openSet[0];
for (int i = 1; i < openSet.Count; i ++) { for (int i = 1; i < openSet.Count; i ++) {
if (openSet[i].FCost < node.FCost || openSet[i].FCost == node.FCost) { if (openSet[i].FCost < node.FCost || openSet[i].FCost == node.FCost) {
if (openSet[i].hCost < node.hCost) if (openSet[i].hCost < node.hCost)