Wizard Astar fix
This commit is contained in:
parent
3aedf89a34
commit
de82e91d9f
@ -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}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
@ -131,16 +133,20 @@ public class FollowingPatrollingEnemy : Enemy
|
|||||||
}
|
}
|
||||||
else if (Vector2.Distance(target.position, transform.position) > chaseRadius)
|
else if (Vector2.Distance(target.position, transform.position) > chaseRadius)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Debug.Log(Vector2.Distance(transform.position, path[currentPoint].position));
|
//Debug.Log(Vector2.Distance(transform.position, path[currentPoint].position));
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
@ -11,6 +11,8 @@ public class AStarPathfindingAgent : MonoBehaviour
|
|||||||
public Node currentPosition;
|
public Node currentPosition;
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
@ -28,7 +28,8 @@ public class Pathfinding : MonoBehaviour
|
|||||||
openSet.Add(startNode);
|
openSet.Add(startNode);
|
||||||
|
|
||||||
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)
|
||||||
|
Loading…
Reference in New Issue
Block a user