summaryrefslogtreecommitdiff
path: root/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2024-05-23 10:08:29 +0800
committerchai <215380520@qq.com>2024-05-23 10:08:29 +0800
commit8722a9920c1f6119bf6e769cba270e63097f8e25 (patch)
tree2eaf9865de7fb1404546de4a4296553d8f68cc3b /Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs
parent3ba4020b69e5971bb0df7ee08b31d10ea4d01937 (diff)
+ astar project
Diffstat (limited to 'Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs')
-rw-r--r--Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs
new file mode 100644
index 0000000..ac96d2d
--- /dev/null
+++ b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/ExampleScenes/Scenes/OldExamples/Example18_RTS/RTSHarvester.cs
@@ -0,0 +1,61 @@
+using UnityEngine;
+using System.Collections;
+using System.Linq;
+using Pathfinding;
+using Pathfinding.Examples.RTS;
+
+namespace Pathfinding.Examples.RTS {
+ [HelpURL("https://arongranberg.com/astar/documentation/stable/rtsharvester.html")]
+ public class RTSHarvester : MonoBehaviour {
+ RTSUnit unit;
+ Animator animator;
+
+ void Awake () {
+ unit = GetComponent<RTSUnit>();
+ animator = GetComponent<Animator>();
+
+ ctx = new BTContext {
+ animator = animator,
+ transform = transform,
+ unit = unit
+ };
+ }
+
+ BTNode behave;
+ BTContext ctx;
+ // Use this for initialization
+ void Start () {
+ StartCoroutine(StateMachine());
+ behave = Behaviors.HarvestBehavior();
+ }
+
+ RTSHarvestableResource FindFreeResource () {
+ /*var resources = FindObjectsOfType<RTSHarvestableResource>().Where(c => c.reservedBy == null).ToArray();
+ RTSHarvestableResource closest = null;
+ var dist = float.PositiveInfinity;
+ var point = transform.position;
+ for (int i = 0; i < resources.Length; i++) {
+ var d = (resources[i].transform.position - point).sqrMagnitude;
+ if (d < dist) {
+ dist = d;
+ closest = resources[i];
+ }
+ }
+ return closest;*/
+ return null;
+ }
+
+ void OnDestroy () {
+ behave.Terminate(ctx);
+ }
+
+ IEnumerator StateMachine () {
+ yield break;
+ }
+
+ // Update is called once per frame
+ void Update () {
+ behave.Tick(ctx);
+ }
+ }
+}