Modeling a harvester: collider or distance?
I am trying to model the harvester and resource behaviors, that is, an object to which a Harvester
script is attached and a different object (objects) with a Resource
script.
The resource has a limited amount of resources to be obtained from it, and the harvester has a harvesting capacity. When a certain key is pressed a Resource#Harvest(int capacity)
method is triggered, the available amount of resources is decreased in the resource object and the harvester's harvested amount is increased (or some similar mechanic).
My main concern is that the moment when harvesting a resource can be performed is either:
Determined by a collision between the harvester (or harvester's harvesting tool) and the resource.
A minimum distance (magnitude) between the harvester (or harvesting tool) and the resource.
What is the best approach? What's usually done?
PS: I guess NPC interacting wouldn't be much more different than this.
I would say the answer depends on how many harvesters you're expecting to have on average, vs how many resources there are in a level on average, and finally how you're storing the resources in your scene.
$$anonymous$$y $$anonymous$$d jumps to C&C so using that series as an example:
Using resource node points ($$anonymous$$g. Red Alert 3), you would have say, 10 resource nodes in the entire scene, so checking via magnitude with a for loop would be the better option, as looping vector calculations are less costly than a Physics check when done in small amounts (I believe, I may be wrong), and you would only be doing 10 for loops per harvester when they're finding one to go to the couple of frames they search for it.
On the other hand, if your resources were large areas of points ($$anonymous$$g. C&C3), say a node of 20/30 resource behaviours, it would be better to use the magnitude loop to find the nearest node, then using the Collider approach in the form of enabling the collider when the harvester is in range, detecting and working for as long as you need, then disabling when returning to base.
Your answer
Follow this Question
Related Questions
How to destroy Terrain-Tree-Collider? 3 Answers
GameObject not colliding properly with a collider! 3 Answers
OnTriggerExit does not work 0 Answers
Hi guys, I need help with C# Scripting using Raycast. 1 Answer
OnTriggerEnter Issue - Collider problem 0 Answers