Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // PATHFINDING CLASS
- public class CustomPathfinder : MonoBehaviour
- {
- private class TraversalProvider : ITraversalProvider
- {
- public bool CanTraverse(Path path, GraphNode node)
- {
- // Override the default logic of which nodes can be traversed
- return DefaultITraversalProvider.CanTraverse(path, node);
- }
- public uint GetTraversalCost(Path path, GraphNode node)
- {
- // Use the default costs
- return DefaultITraversalProvider.GetTraversalCost(path, node);
- }
- }
- public static ABPath CalculatePath(Vector3 startPos, Vector3 endPos)
- {
- var traversalProvider = new TraversalProvider();
- ABPath path = ABPath.Construct(startPos, endPos);
- path.traversalProvider = traversalProvider;
- return path;
- }
- }
- // THE UNIT THAT NEEDS TO CALCULATE A PATH AND WALK
- public class WalkerTest : MonoBehaviour
- {
- public Seeker seeker;
- private void Awake()
- {
- seeker = GetComponent<Seeker>();
- }
- // Update is called once per frame
- void Update()
- {
- if (Keyboard.current[Key.G].wasPressedThisFrame)
- {
- ABPath path = CustomPathfinder.CalculatePath(transform.position, Utilities.GetMousePosition());
- seeker.StartPath(path, OnPathComplete);
- }
- }
- public void OnPathComplete(Path p)
- {
- Debug.Log($"PATH FOUND");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement