public void subUnitFromArray(TossedGarbage triggerUnit)
 {
     if(CollectedTrash != null) {
         TossedGarbage[] CollectedTrashBuffer;
         if(CollectedTrash.Length == 1) {
             CollectedTrash = null;
         } else {
             int i = 0; int offset = 0; int nulls = 0;
             CollectedTrashBuffer = null;
             CollectedTrashBuffer = new TossedGarbage[CollectedTrash.Length];
             for(i = 0; i < CollectedTrash.Length;i++){
                 //modified to exclude the specified unit as well as any null values
                 if(CollectedTrash[i] == null || CollectedTrash[i] == triggerUnit){
                     nulls += 1;
                 } else {
                     CollectedTrashBuffer[i-nulls] = CollectedTrash[i];
                 }
             }
             CollectedTrash = null;
             CollectedTrash = new TossedGarbage[i-nulls];
             for(i = 0; i < CollectedTrashBuffer.Length-nulls;i++){
                 if(CollectedTrashBuffer[i] == triggerUnit) { //this should ALWAYS return false due to the previous for loop's conditions
                     offset -= 1;
                 } else {
                     CollectedTrash[i+offset] = CollectedTrashBuffer[i];
                 }
             }
         }
     }
 }
 public void addUnitToArray(TossedGarbage triggerUnit)
 {
     clearVoidsFromArray();
     bool duplicate = false;
     TossedGarbage[] CollectedTrashBuffer;
     if(CollectedTrash == null) {
         CollectedTrash = new TossedGarbage[1];
         CollectedTrash[0] = triggerUnit;
         //Debug.Log ("LeadUnit[" + triggerUnit.GetComponent<minimapDotScript>().team + "] " + triggerUnit.name);
     } else {
         int i = 0;
         CollectedTrashBuffer = null;
         CollectedTrashBuffer = new TossedGarbage[CollectedTrash.Length];
         for(i = 0; i < CollectedTrash.Length;i++){
             CollectedTrashBuffer[i] = CollectedTrash[i];
             if(CollectedTrash[i] == triggerUnit) { duplicate = true;
                 //Debug.Log ("Duplicate Unit!!");
             }
         }
         if(duplicate == false) {
             CollectedTrash = null;
             CollectedTrash = new TossedGarbage[CollectedTrashBuffer.Length + 1];
             //--  --//
             for(i = 0; i < CollectedTrashBuffer.Length;i++){
                 CollectedTrash[i] = CollectedTrashBuffer[i];
                 //Debug.Log ("Unit " + i + " " + CollectedTrash[i].name);
             }
             CollectedTrash[i] = triggerUnit;
             //Debug.Log ("AddedUnit[" + triggerUnit.GetComponent<minimapDotScript>().team + "] " + triggerUnit.name);
             //Debug.Log ("Unit " + i + " " + CollectedTrash[i].name);
         }
         //Debug.Log ("Duplicate Unit!! Can not add to array!");
     }
 }
 //--The next 150 lines or so were ripped from another project by C T to use for managing an array inside a trigger area.--//
 // A list might have been simpler... or just a function to return all overlapping actors.
 public GameObject getTargetSelected(int forTeam)
 {
     clearVoidsFromArray();
     if(CollectedTrash == null) return null;
     targetSelected = null;
     for(int i = 0; i < CollectedTrash.Length;i++){
         //if(CollectedTrash[i].teamNumber != forTeam){
             //if(CollectedTrash[i].checkTargetable(targeting)){
                 targetSelected = CollectedTrash[i];
             //}
         //}
     }
     if(targetSelected == null) {
         return null;
     } else {
         return targetSelected.transform.parent.gameObject;
     }
 }
 private void clearVoidsFromArray()
 {
     if(CollectedTrash != null) {
         TossedGarbage[] CollectedTrashBuffer;
         int i = 0; int offset = 0; int nulls = 0;
         CollectedTrashBuffer = null;
         CollectedTrashBuffer = new TossedGarbage[CollectedTrash.Length];
         for(i = 0; i < CollectedTrash.Length;i++){
             if(CollectedTrash[i] == null){
                 nulls += 1;
             } else {
                 CollectedTrashBuffer[i-nulls] = CollectedTrash[i];
             }
         }
         CollectedTrash = null;
         CollectedTrash = new TossedGarbage[i-nulls];
         for(i = 0; i < CollectedTrashBuffer.Length-nulls;i++){
             CollectedTrash[i] = CollectedTrashBuffer[i];
         }
     }
 }
 void AddToArray(TossedGarbage toAdd)
 {
     TossedGarbage[] CollectedTrashBuffer;
 }