// instantiate a new soldier public void InstantiateSoldier() { SoldierSlot availableSlot = getAvailableSlot(); // no place was found if (availableSlot == null) { print(string.Format("Tower {0} - No free slots", playerNumber)); } // instantiate a new soldier and target it towards the free soldier slot else { setGateOpen(true); GameObject newSoldier = Instantiate(soldierPrefab, soldierInstantiatePosition.position, Quaternion.LookRotation(-transform.forward, transform.up), transform) as GameObject; newSoldier.GetComponent <SortingGroup>().sortingOrder = countNumOfSoldiers; SoldierHealth newSoldierComponent = newSoldier.GetComponent <SoldierHealth>(); newSoldierComponent.spawnPoint = soldierInstantiatePosition; newSoldierComponent.soldierSlot = availableSlot; //newSoldierComponent.speed = 10; currentNumOfSoldiers++; countNumOfSoldiers++; //Invoke("closeGate", delayBeforeClosingTheGate); } }
void Awake() { player = GameObject.FindGameObjectWithTag("Player"); playerHealth = player.GetComponent <SoldierHealth>(); enemyHealth = GetComponent <EnemyHealth>(); anim = GetComponent <Animator> (); }
void Awake() { player = GameObject.FindGameObjectWithTag("Player").transform; Debug.Log("player " + player); playerHealth = player.GetComponent <SoldierHealth> (); enemyHealth = GetComponent <EnemyHealth> (); nav = GetComponent <NavMeshAgent> (); Debug.Log("nav " + nav); }
/* Shooting Damage */ void OnTriggerEnter(Collider collid) { if(collid.tag == "Rocket Brigadier"){ soldierHealth = collid.GetComponent<SoldierHealth>(); GameObject explosive = Instantiate(explosion, collid.transform.position, Quaternion.identity) as GameObject; audio = explosive.GetComponent<AudioSource>(); audio.PlayOneShot(explosionAudio, 0.5f); if(soldierHealth != null) { soldierHealth.TakingDamage(shootingDamage); } } Destroy(gameObject, 1f); }
void Shoot() { timer = 0f; ShootRay.origin = transform.position; ShootRay.direction = transform.forward; if (Physics.Raycast(ShootRay, out shootHit, Range, ShootableMask)) { SoldierHealth soldierHealth = shootHit.collider.GetComponent <SoldierHealth>(); if (soldierHealth != null) { soldierHealth.TakeDamage(damagePerShot, shootHit.point); } gunLine.SetPosition(1, shootHit.point); } else { gunLine.SetPosition(1, ShootRay.origin + ShootRay.direction * Range); } }