//function to find the closest pick up target //GameObject GetClosestPickUp (List<GameObject> PickUps) GameObject TargetClosestPickUp() { GameObject bestTarget = null; float closestDistanceSqr = Mathf.Infinity; Vector3 currentPosition = transform.position; //foreach (GameObject potentialTargetObj in PickUps) foreach (KeyValuePair <GameObject, GameObject> potentialTargetObj in PickUpHandler.openPickUpDictionary[allegiance]) { if (potentialTargetObj.Value == null) //if (!potentialTargetObj.gameObject.GetComponent<PickUp>().IsCollected()) { //GameObject potentialTarget = potentialTargetObj.Key; Vector3 directionToTarget = potentialTargetObj.Key.transform.position - currentPosition; //directionToTarget.Normalize(); float dSqrToTarget = directionToTarget.sqrMagnitude; if (dSqrToTarget < closestDistanceSqr) { closestDistanceSqr = dSqrToTarget; //bestTarget = potentialTarget; bestTarget = potentialTargetObj.Key; } } } if (bestTarget != null) { PickUpHandler.TargetPickUp(bestTarget, this.gameObject, allegiance); } aimTarget = bestTarget; return(bestTarget); }
public void PickUpIsRemovedFromOpenList() { //Arrange PickUpHandler.AddToOpenPickUp(pickUp); //Act PickUpHandler.TargetPickUp(pickUp, worker, GameResources.Allegiance.Team1); //Assert Assert.False(PickUpHandler.openPickUpDictionary[GameResources.Allegiance.Team1][pickUp] == null); }