I am making an rts game. It is now possible to select several units by clicking on them while holding shift. But I can’t deselect them all at once when I hit the terrain.
public void DeselectUnits() {
if (currentlySelectedUnitGroup.Count > 0) {
for (int i = 0; i < currentlySelectedUnitGroup.Count; i++) {
GameObject go = currentlySelectedUnitGroup *as GameObject;*
-
RemoveFromCurrentlySelectedUnitGroup(go);* -
} * -
} * - }*
- public void RemoveUnitFromGroup(GameObject selectedObj) {*
-
currentlySelectedUnitGroup.Remove(selectedObj);* -
GameObject selecter = selectedObj.transform.FindChild("Selected").gameObject;//this is a projector* -
selecter.SetActive(false);* - }*
If I select 6 units. Then click the ground, 3 of them gets deselected. If I click once again on the ground, one last will still be selected. But I want them all to be deselected at once.
Instead of the RemoveUnitFromGroup function I also tried with this: - public void RemoveFromCurrentlySelectedUnitGroup(GameObject unit) {*
-
int i = 0;* -
while (i < currentlySelectedUnitGroup.Count) {*
_ GameObject unitObj = currentlySelectedUnitGroup as GameObject;_
* if(unitObj == unit) {*
* currentlySelectedUnitGroup.RemoveAt(i);*
* unitObj.GetComponent().selected = false;*
* GameObject selecter = unitObj.transform.FindChild(“Selected”).gameObject;*
* selecter.SetActive(false);*
* return;*
* } *
* i++;*
* }*
* return;*
* }*
But the exact same thing happens.
And also, currentlySelectedUnitGroup.Clear(); wont work. It has to be done this way if I also want to turn off the projectors.
No explanation, but better than my solution. +1
– ArkaneX