// Update is called once per frame void FixedUpdate() { float melee = Input.GetAxis("Fire2"); //Left Alt ou botão esquerdo mouse if (melee > 0 && nextMelee < Time.time && !(myPC.GetRunning())) { myAnim.SetTrigger("gunMelee"); //Já é automaticamente true por um momento gatilho nextMelee = Time.time + meleeRate; //Tempo em segundos desde o inicio até "agora" + rate //do Damage //Cria array de colider que salva tudo que tiver dentro dessa overlap sphere //Parametros --- Lugar onde ela é criada, tamanho dela e masks que ela afetara Collider[] attacked = Physics.OverlapSphere(transform.position, knockBackRadius, shootableMask); for (int i = 0; i < attacked.Length; i++) { if (attacked[i].GetComponent <Collider>().tag == "Enemy") { enemyHealth theEnemyHealth = attacked[i].GetComponent <enemyHealth>(); //tenta achar o script de vida if (theEnemyHealth != null) { theEnemyHealth.addDamage(damage); theEnemyHealth.damageFX(transform.position, -transform.forward); } } } } }
// Use this for initialization void Awake () { shoottableMask = LayerMask.GetMask("Shootable"); gunLine = GetComponent<LineRenderer>(); shootRay.origin = transform.position; shootRay.direction = transform.forward; gunLine.SetPosition(0, transform.position); if (Physics.Raycast(shootRay, out shootHit, range, shoottableMask)) { if(shootHit.collider.tag == "Enemy") { enemyHealth theEnemyHealth = shootHit.collider.GetComponent<enemyHealth>(); if(theEnemyHealth != null) { theEnemyHealth.addDamage(damage); theEnemyHealth.damageFX(shootHit.point, -shootRay.direction); } } //Hit an enemy goes here gunLine.SetPosition(1, shootHit.point); } else gunLine.SetPosition(1, shootRay.origin + shootRay.direction*range); }
// Use this for initialization void Start() { Vector3 explosionPos = transform.position; Collider[] colliders = Physics.OverlapSphere(explosionPos, radius); foreach (Collider hit in colliders) { Rigidbody rb = hit.GetComponent <Rigidbody>(); if (rb != null) { rb.AddExplosionForce(power, explosionPos, radius, 3.0f, ForceMode.Impulse); } if (hit.tag == "Player") { playerHealth thePlayerHealth = hit.gameObject.GetComponent <playerHealth>(); thePlayerHealth.addDamage(damage); } else if (hit.tag == "Enemy") { enemyHealth theEnemyHealth = hit.gameObject.GetComponent <enemyHealth>(); theEnemyHealth.addDamage(damage); } } }
void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Enemy") { enemyHealth.addDamage(enemyDamage); } }
//public int playerMoney = 0; //Text playerMoneyText; #endregion // Use this for initialization void Awake() { //playerMoneyText = GameObject.Find("moneyAmount").GetComponent<Text>(); //playerMoneyText.text = playerMoney.ToString(); money = GameObject.Find("moneyPanel").GetComponent <moneyIncreaser>(); shootableMask = LayerMask.GetMask("Shootable"); //Shootable layers, in layers. Find the shootable layer. gunLine = GetComponent <LineRenderer>(); //line renderer reference shootRay.origin = transform.position; //Ray is being shot from where instantiated shootRay.direction = transform.forward; //Shoot forward from position gunLine.SetPosition(0, transform.position); //where to start and finish drawing if (Physics.Raycast(shootRay, out shootHit, range, shootableMask)) //chose the ray, out value will bring information as to what we hit, range is how far it will shoot, layermask to determine what can be hit/shot (shootable) { if (shootHit.collider.tag == "zombie") //if we have shot an enemy { //playerMoney++; money.increaseMoney(); SetMoneyText(); enemyHealth theEnemyHealth = shootHit.collider.GetComponent <enemyHealth>(); //get enemy health if (theEnemyHealth != null) //if we find it, and its not null { theEnemyHealth.addDamage(damage); //make damage theEnemyHealth.damageFX(shootHit.point, -shootRay.direction); } } //Hit an enemy will be entered here gunLine.SetPosition(1, shootHit.point); //endpoint of gunline, what did i hit, where did i hit it } else { gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range); //if nothing is hit, shoot a ray within the range we set } }
// Update is called once per frame void FixedUpdate() { float melee = Input.GetAxis("Fire2"); if (melee > 0 && nextMelee < Time.time && !(myPC.getRunning())) { myAnim.SetTrigger("gunMelee"); nextMelee = Time.time + meleeRate; //do damage Collider[] attacked = Physics.OverlapSphere(transform.position, knockBackRadius, shootableMask); int i = 0; while (i < attacked.Length) { if (attacked[i].tag == "Enemy") { enemyHealth doDamage = attacked[i].GetComponent <enemyHealth>(); doDamage.addDamage(damage); doDamage.damageFX(transform.position, transform.localEulerAngles); } i++; } } }
public AudioClip explosionAudio; //Som da explosao // Start is called before the first frame update void Awake() { Vector3 explosionPos = transform.position; //Pega a posição do objeto pra criar a Overlap Sphere Collider[] colliders = Physics.OverlapSphere(explosionPos, radius); //Cria a overlap sphere naquele ponto com aquele raio foreach (Collider hit in colliders) { Rigidbody rb = hit.GetComponent <Rigidbody>(); //Pega o rigidbody do que foi acertado //Se rb foi encontrado no objeto if (rb != null) { Debug.Log("Acertou"); //Built-in function --- Forca da explosao, ponto da onde explodiu, raio //Modificador que joga pra cima, modo de forca = impulso rb.AddExplosionForce(power, explosionPos, radius, 3.0f, ForceMode.Impulse); if (hit.tag == "Player") { playerHealth thePlayerHealth = hit.gameObject.GetComponent <playerHealth>(); //Pq aqui é so o Collider thePlayerHealth.addDamage(damage); } else if (hit.tag == "Enemy") { enemyHealth theEnemyHealth = hit.gameObject.GetComponent <enemyHealth>(); theEnemyHealth.addDamage(damage); theEnemyHealth.addFire(); } } } AudioSource.PlayClipAtPoint(explosionAudio, transform.position, 1f); }
void OnTriggerEnter(Collider other) { if (other.tag == "Enemy") { enemyHealth theEnemyHealth = other.GetComponent <enemyHealth>(); if (theEnemyHealth != null) { theEnemyHealth.addDamage(damage); } } }
void OnTriggerEnter2D(Collider2D other) { if (other.tag == "Enemy") { terkenaAttack = true; playHitAudio(); pushBack(other.transform); enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth> (); hurtEnemy.addDamage(weaponDamage); } }
void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.layer == LayerMask.NameToLayer("Shootable")) { Destroy(gameObject); } if (collision.gameObject.tag == "Enemy") { enemyHealth hurtEnemy = collision.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } }
void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { Destroy(gameObject); if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(bulletDamage); } } }
void OnTriggerStay2D(Collider2D other) { if (other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myPC.removeForce(); Destroy(gameObject); if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } } }
void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myPC.removeForce(); Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(gameObject); if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } } }
private void OnTriggerStay2D(Collider2D collision) { if (collision.gameObject.layer == LayerMask.NameToLayer("shootable")) { myPC.removeForce(); Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(gameObject); } if (collision.tag == "enemy") { enemyHealth hurtEnemy = collision.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } }
void OnTriggerStay2D(Collider2D other) { if (other.gameObject.layer == LayerMask.NameToLayer("ammuttava")) //layermask antaa tiedon,että objektia voi ampua. Muista lisätä layermask ammuttaviin objekteihin. { myPC.poistaliikkuvuus(); Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(gameObject); if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(osumavahinko); } } }
} //vua bat dau va cham void OnTriggerStay2D(Collider2D other) { if (other.gameObject.tag == "Shootable") { myPC.removeForce(); Instantiate(bulletExplosion, transform.position, transform.rotation); Destroy(gameObject); //phas huy doi tuong khi va cham if (other.gameObject.layer == LayerMask.NameToLayer("enemy")) { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } } } //khi vat the di xuyen qua vat bi qua cham
void OnTriggerEnter(Collider other) { if (other.tag == "Enemy" || other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myRB.velocity = Vector3.zero; enemyHealth theEnemyHealth = other.GetComponent <enemyHealth> (); if (theEnemyHealth != null) { theEnemyHealth.addDamage(damage); theEnemyHealth.addFire(); } Destroy(gameObject); } }
// If you hit a Shootable object, remove the forces from the missle and destroy it void OnTriggerEnter2D(Collider2D other) { //if we hit ground or Shootable the rocket explodes if (other.gameObject.layer == LayerMask.NameToLayer("Shootable") || other.gameObject.layer == LayerMask.NameToLayer("Ground")) { myPC.removeForce(); //Remove the force of the rocket Instantiate(explosionEffect, transform.position, transform.rotation); //add explotionEffect Destroy(gameObject); //destroy the gameObject // if the target is an enemy remove health from it if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); // get the enemies health hurtEnemy.addDamage(weaponDamage); // call addDamage } } }
//if the missile is going too fast we can still catch it void OnTriggerStay2D(Collider2D other) { //if the game object is on the same layer as the shootable layer if (other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myPC.removeForce(); //calls the removeForce function Instantiate(explosionEffect, transform.position, transform.rotation); //creates the explosion effect Destroy(gameObject); //destroys this object (the missile) and not the projectile //if the other object has the enemy tag if (other.tag == "Enemy") { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); //assigns a new variable (hurtEnemy) to the enemyHealth script that references the object the script is on hurtEnemy.addDamage(weaponDamage); //calls the addDamage function in the enemyHealth script and assigns the damage value to the variable weaponDamage defined on the rocket } } }
void OnTriggerEnter(Collider other) { //Nesse caso vai pegar o gameObject do collider que ele colidiu e pegar o layer desse gameObject if (other.tag == "Enemy" || other.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myRB.velocity = Vector3.zero; //Para de mover tudo //Procura o script de vida do inimigo enemyHealth theEnemyHealth = other.GetComponent <enemyHealth>(); //Se encontrar: if (theEnemyHealth != null) { theEnemyHealth.addDamage(damage); //Primeiro da o dano em si theEnemyHealth.addFire(); //Chama função pra dar dano de fogo no inimigo } Destroy(gameObject); } }
// To get the info of the other collider hit by bullet private void OnTriggerEnter2D(Collider2D collision) { if (collision.gameObject.layer == LayerMask.NameToLayer("Shootable")) { myPC.removeForce(); Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(gameObject); if (collision.tag == "Enemy") { enemyHealth enemyHurt = collision.gameObject.GetComponent <enemyHealth>(); if (enemyHurt != null) //if script exists call addDamage() from it { enemyHurt.addDamage(weaponDamage); } } } }
void OnTriggerStay2D(Collider2D obj) { if (obj.gameObject.name == "Batas" || obj.gameObject.name == "Batas2") { Destroy(gameObject); } if (obj.gameObject.layer == LayerMask.NameToLayer("TargetTembak")) { ///Instantiate(explosionEffect, transform.position, transform.rotation); Destroy(gameObject); if (obj.gameObject.tag == "Enemy") { enemyHealth hurtEnemy = obj.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } } }
//When the arrow collides with a Shootable object, remove the arrow, check if its an enemy, then do damage if applicable void OnTriggerEnter2D(Collider2D other) { if ((other.gameObject.layer == LayerMask.NameToLayer("Shootable")) || (other.gameObject.layer == LayerMask.NameToLayer("Ground"))) { myPC.removeForce(); FindObjectOfType <AudioManager>().Play("Pop"); Destroy(gameObject); if (other.tag == "Enemy") { myEnemy = other.gameObject.GetComponent <enemyHealth>(); myEnemy.addDamage(arrowDamage); pushBack(other.transform); } } }
void OnTriggerStay2D(Collider2D other) { if (canAttack == true) { if (other.gameObject.layer == LayerMask.NameToLayer("Attackable")) { if (attack == true) { if (other.tag == "Enemy") { if (canAttack == true) { enemyHealth hurtEnemy = other.gameObject.GetComponent <enemyHealth>(); hurtEnemy.addDamage(weaponDamage); } StartCoroutine(doAttack()); } } } } }
void OnTriggerEnter2D(Collider2D other) //whenever the collider comes into contact with another collider { if (other.gameObject.layer == LayerMask.NameToLayer("Shootable") || other.gameObject.layer == LayerMask.NameToLayer("Ground")) //if the collider is on the layer "Shootable", then stop kunai, instantiate spark effect, and destroy kunai sprite { myPC.removeForce(); Instantiate(sparkEffect, transform.position, transform.rotation); Destroy(transform.parent.gameObject); if (other.tag == "Enemy") { if (other.gameObject.GetComponent <enemyHealth>()) { enemyHealth damageEnemy = other.gameObject.GetComponent <enemyHealth>(); damageEnemy.addDamage(kunaiDamage); } else if (other.gameObject.GetComponent <boss1EnemyHealth>()) { boss1EnemyHealth damageEnemy = other.gameObject.GetComponent <boss1EnemyHealth>(); damageEnemy.addDamage(kunaiDamage); } } } }
//Called in Button Boss public static void spawnBoss() { if (bossSpawned) { return; } bossSpawned = true; foreach (GameObject i in allEnemies) { if (i == null || i.tag == "Boss") { continue; } enemyHealth tempHealth = i.GetComponent <enemyHealth>(); tempHealth.addDamage(tempHealth.currentHealth); } int index = 0; switch (currPlayer.scene.name) { case ("Fight scene"): break; case ("Fight scene 1"): index = 1; break; case ("Fight scene 2"): index = 2; break; } currEnemy = Instantiate(SaveManager.Instance.enemyBoss[index], (Vector2)currPlayer.transform.position + new Vector2(10f, 1f), currPlayer.transform.rotation); setEnemyStats(currEnemy); }
LineRenderer gunLine; //Instancia uma variavel que pode guardar um LineRenderer // Use this for initialization void Awake() { shootableMask = LayerMask.GetMask("Shootable"); //Procura qual posição esta o layer shootable gunLine = GetComponent <LineRenderer>(); //Instancia o LineRenderer do bullet shootRay.origin = transform.position; //Instancia o raio do tiro a partir da onde ele está sendo chamado shootRay.direction = transform.forward; //Vai castar o raio na direção do transform do objeto que esta chamando (gunMuzzle) gunLine.SetPosition(0, transform.position); //Vai iniciar na posição de onde o tiro foi instanciado (gunMuzzle) //Vai pegar a informação shootRay e vai retornar a informação dele para o shootHit, a distancia (range) que podera ser atirado //e vai "acertar" apenas o shootableMask if (Physics.Raycast(shootRay, out shootHit, range, shootableMask)) { //Vai usar essa informação do shoothit e ver se o collider que ele acertou tem tag "Enemy" if (shootHit.collider.tag == "Enemy") { //Se tiver ele instancia uma var do tipo enemyHealth que pega o componente EnemyHealt(script) //Do objeto que o ray acertou, nesse caso assumi-se que esta no top layer //Se não estiver teria que pesquisar no root do gameObject enemyHealth theEnemyHealth = shootHit.collider.GetComponent <enemyHealth>(); //Se ele encontrar o script: if (theEnemyHealth != null) { theEnemyHealth.addDamage(damage); //Chama a função dentro do inimigo que da dano nele //Vai instancia o efetio de dano no ponto onde o shootHit acertou e na direção oposta do raio em si //Pra ficar mais claro, revisa o script Enemy health e ve os parametros da função DamageFX theEnemyHealth.damageFX(shootHit.point, -shootRay.direction); } } gunLine.SetPosition(1, shootHit.point); // Vai vir da posição inicial até aqui(a partir da arma até o alvo), shootHit.point no caso } else { gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range); //Se não acertar nada ele vai atirar um raio até o alcance maximo que ele consegue } }