public void UpdateHealthBar(UnitCommander unitCmd) { int instId = unitCmd.GetInstanceID(); Transform healthBarT = null; if (!healthBarDict.ContainsKey(instId)){ healthBarT = Instantiate(healthBarPrefab); healthBarT.SetParent(canvas); healthBarDict.Add(instId, healthBarT); }else{ healthBarT = healthBarDict[instId]; } Vector2 aboveHeadPosition = Camera.main.WorldToScreenPoint(unitCmd.transform.position); aboveHeadPosition.y += 25; healthBarT.position = aboveHeadPosition; float health = unitCmd.health / (float) unitCmd.maxHealth; healthBarT.GetComponent<HealthBar>().UpdateBar(health, HealthToColor(health)); }