SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Problema com Sistema de Sanidade
ASSETS do UNITY 3D - posso usar as assets gratuitas do unity em um jogo pago?
Trading Card Game (TCG) de "Fantasia Medieval"
Futuro dos Games e suas tecnologias
Shader - Campo de Força
Bug com Dropdown
[RESOLVIDO] como eu continuo o game a partir de save
Atualização Text
Som de queda
Como eu faço pra quando o tempo chegar em 14 segundos ele fazer algo
Alguém que mexa com otimização mobile? Trabalho Remunerado!
Como fazer um chão quebrar ao passar por cima no Unity 3D
Duvida Sobre a colisao dos objetos
pegar o primeiro pai de um gameObject
Mercado MMO
Barra de Pontos com Slider usando Mathf.Lerp
CommandInvokationFailure: Gradle build failed.
Criar um poder de água, o que devo usar?
Movimento de BoxCollider com RigidBody
Sistema de Nota Personalizada
Procuro ROTEIRISTA
LWRP Mobile
Jogo de Tiro em 3° pessoa mais com mira
[EQUIPE] VAGAS ABERTAS
Duvida sobre Time.deltaTime
Formação de Equipe
Sprite Renderer
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
Desativar Capsule Collider
Quero saber se tem na unity alguma funçao  que seja um trigger?
Inimigo segue o player mesmo morto!!!
Como adicionar códigos nativos de 64 bits em um app Android? 64 bits do Google Play
[Dúvida] Multiplayer via roteador
Como programar um sistema para fazer o Player puxar um objetos no Unity
Chamar objeto em jogo em um modelo prefab
'Smooth Move'!?
DAR AÇÃO A UM BOTÃO
[RESOLVIDO] Problema no mesh collider após exportar para Desktop
Adicionar um botão!!
Site de animações
TurboSquid e licenças Free Royalty
ALGUEM DE PORTO ALEGRE OU ELDORADO DO SUL?
Como deixar o projeto mais leve Unity
clicar com o botão direito do mouse em um BOTÃO
Jogo - Conexão com Servidor
Problema com Global Ilumination Unity 2019
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
Como coloco interações num objeto de um jogo da Unity 4?
[PHOTON] instanciando 2 players(repetidos) na cena.
Existe outras formas de multiplayer sem ser pelo Photon ou Unet?
GetComponet em Array
Script pesado
A escala do objeto importa ?
Erro: all compiler errors have to be fixed before you can enter play mode
Erro ?
Animação de arma
[TUTORIAL] Script de arma completo! [FREE]
ERRO: O nome de tipo ou namespace "UI" não existe no namespace "UnityEngine"
Skill não se move com o Jogador!!
Amoeba / Gosma - Unity
Player sobreviver desde as 00h ás 04:00
[RESOLVIDO] Publicar no PlayStore um app de Realidade Aumentada
Script de Tempo
[RESOLVIDO] Problema ao arrastar imagens, músicas ou modelos 3D para a UNITY
alguem sabe como atualizar o c#
como fazer um objeto seguir o player 2D
Jogo de Galo e de Galinha também
[TUTORIAL] Controle 3ª pessoa com animações mecânicas (root motion)
Alquem pode me explicar como funciona essa funçao
Como fazer o botão de tiro com touch nao com tecla
Como mover um objeto sem usar collider ou rigidbody?
[RESOLVIDO] Audio Stop e PlayOneShot
[RESOLVIDO] Não posso chamar uma matriz por outra?
[RESOLVIDO] Colisão
Mesh bugada no Android
Rotação animação
[RESOLVIDO] Sombras pixeladas (Android)
Como posso fazer pra atirar onde o cursor do mouse está (UNITY 2D)
[DIVULGAÇÃO] Venha aprender C# jogando!
[RESOLVIDO] Erro com "Instantiate"
Migração de Projetos no Unity
Unity: Como otimizar automaticamente o app para o GooglePlay
as sombras da minha sena esta sendo renderizadas longe de aonde deveria começar
Cena para fim do jogo
Podcast de desenvolvedores de jogos
Alguem cria jogos pagos para PLAY STORE?
[DUVIDA] Problema para "spawnar" os players no PhotonNetwork
[RESOLVIDO] Rotacionar modelo ou eixo de orientaçao (iniciante)
Animaçoes
Entou com duvida com on trigger Enter e Exit - UNITY
Script de player - camera bugada - Photon
Como mudar o prefab do jogador usando unet
Unity Sem DropDown
Demonstração do meu primeiro jogo de terror.
Importa e aplicar animações com root motion
Alterar Variável em conexão de rede
[TUTORIAL] Serialização - JSON
Unity Terrain - Como deixar uma área plana?
Controles mobile 2d game Kit
Hoje à(s) 10:09 pm
Hoje à(s) 9:45 pm
Hoje à(s) 9:42 pm
Hoje à(s) 9:33 pm
Hoje à(s) 9:13 pm
Hoje à(s) 8:45 pm
Hoje à(s) 8:35 pm
Hoje à(s) 8:02 pm
Hoje à(s) 7:53 pm
Hoje à(s) 7:48 pm
Hoje à(s) 7:45 pm
Hoje à(s) 7:43 pm
Hoje à(s) 7:23 pm
Hoje à(s) 6:06 pm
Hoje à(s) 5:01 pm
Hoje à(s) 4:51 pm
Hoje à(s) 1:35 pm
Hoje à(s) 6:39 am
Ontem à(s) 11:43 pm
Ontem à(s) 9:52 pm
Ontem à(s) 5:17 pm
Ontem à(s) 2:41 pm
Ontem à(s) 2:25 pm
Ontem à(s) 1:06 pm
Ontem à(s) 12:50 pm
Ontem à(s) 11:14 am
Sex Fev 21, 2020 7:55 pm
Sex Fev 21, 2020 6:21 pm
Sex Fev 21, 2020 4:44 pm
Sex Fev 21, 2020 4:26 pm
Sex Fev 21, 2020 1:55 pm
Sex Fev 21, 2020 1:02 pm
Sex Fev 21, 2020 9:05 am
Qui Fev 20, 2020 7:20 pm
Qui Fev 20, 2020 4:51 pm
Qui Fev 20, 2020 12:48 pm
Qui Fev 20, 2020 8:47 am
Qua Fev 19, 2020 8:13 pm
Qua Fev 19, 2020 6:49 pm
Qua Fev 19, 2020 3:51 pm
Qua Fev 19, 2020 1:04 am
Ter Fev 18, 2020 11:22 pm
Ter Fev 18, 2020 10:10 pm
Ter Fev 18, 2020 5:28 pm
Seg Fev 17, 2020 11:46 pm
Seg Fev 17, 2020 10:43 pm
Seg Fev 17, 2020 3:28 pm
Seg Fev 17, 2020 3:19 pm
Seg Fev 17, 2020 2:55 pm
Seg Fev 17, 2020 1:07 pm
Seg Fev 17, 2020 11:00 am
Seg Fev 17, 2020 9:54 am
Seg Fev 17, 2020 9:02 am
Seg Fev 17, 2020 4:50 am
Seg Fev 17, 2020 12:12 am
Dom Fev 16, 2020 4:29 pm
Dom Fev 16, 2020 12:42 pm
Dom Fev 16, 2020 3:50 am
Sab Fev 15, 2020 7:28 pm
Sab Fev 15, 2020 3:19 pm
Sab Fev 15, 2020 10:36 am
Sab Fev 15, 2020 12:29 am
Sex Fev 14, 2020 7:41 pm
Sex Fev 14, 2020 4:59 pm
Sex Fev 14, 2020 2:19 pm
Qua Fev 12, 2020 11:17 am
Ter Fev 11, 2020 7:26 am
Ter Fev 11, 2020 1:07 am
Ter Fev 11, 2020 1:03 am
Seg Fev 10, 2020 10:30 pm
Seg Fev 10, 2020 8:57 pm
Seg Fev 10, 2020 8:32 pm
Seg Fev 10, 2020 4:38 pm
Seg Fev 10, 2020 4:15 pm
Dom Fev 09, 2020 8:24 pm
Dom Fev 09, 2020 6:32 pm
Dom Fev 09, 2020 6:27 pm
Dom Fev 09, 2020 6:22 pm
Dom Fev 09, 2020 6:17 pm
Dom Fev 09, 2020 5:55 pm
Dom Fev 09, 2020 3:24 pm
Dom Fev 09, 2020 2:18 pm
Dom Fev 09, 2020 2:11 pm
Dom Fev 09, 2020 11:22 am
Sab Fev 08, 2020 2:40 pm
Sab Fev 08, 2020 1:03 pm
Sab Fev 08, 2020 12:10 pm
Sab Fev 08, 2020 11:40 am
Sab Fev 08, 2020 11:18 am
Sab Fev 08, 2020 4:46 am
Sex Fev 07, 2020 10:22 pm
Sex Fev 07, 2020 2:10 pm
Qui Fev 06, 2020 10:35 pm
Qui Fev 06, 2020 10:06 pm
Qui Fev 06, 2020 9:44 pm
Qui Fev 06, 2020 2:23 pm
Qui Fev 06, 2020 2:01 pm
Qui Fev 06, 2020 12:51 pm
Qui Fev 06, 2020 10:36 am
BlesseD
MayLeone
MayLeone
guimaraf
guimaraf
Magnatah
Magnatah
Magnatah
Magnatah
iMicco13
Magnatah
Magnatah
Magnatah
Nalfam
xandeqs
joffersoju
cultzone
ronigleydson
BlesseD
BlesseD
ovoPentelho
Fagner
Fagner
guimaraf
Fagner
Douglas2020A
Diguinho
speedluk
Magnatah
Dom3000
speedluk
cultzone
Xamangue
Samuquis
Batataaaa
speedluk
samuelpaulino
guimaraf
BlesseD
Edivandro2706
Gabriel M
frozen
lesgoy
Batataaaa
danielPedra90
Fagner
pipipipo
pipipipo
daniel123163
artplayer
Batataaaa
Fagner
FelixTedesco
Fabio424
RafaelSquid1
Edivandro2706
Edu4rdogx
juansup
Nalfam
Fagner
SherDown
joffersoju
joffersoju
MarcosSchultz
diegopds
palestinus
dstaroski
pedroorf
ffabim
estuartyy
diegopds
BlesseD
Snickers1020
maxwarnava
Duarte
MayLeone
MRX
MayLeone
poyser
BlesseD
Fagner
lesgoy
lesgoy
Nightos
hendrick22
lesgoy
daniel123163
HEINZ4K
hendrick22
Felipe42
juansup
juansup
LúcioHenrique098
lauderson
hendrick22
SergioDB
paulocezarphp
Edu4rdogx
robsonguerrero

[RESOLVIDO] Como verificar se o objeto é diferente de null

Ir em baixo

Resolvido [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por QueriaStarMorto em Qui Set 27, 2018 3:21 pm

Código:
 Collider2D[] enemiesAttack = Physics2D.OverlapBoxAll (attackCheck.position,new Vector2 (attackRangeX,attackRangeY),0,layerEnemy);
 for (int i = 0; i < enemiesAttack.Length; i++)
 {

 enemiesAttack [i].GetComponent<Enemy1> ().TakeDamage (damage);

 enemiesAttack [i].GetComponent<Enemy2> ().Knockback ();
 enemiesAttack [i].GetComponent<Enemy2> ().TakeDamage (damage);

 }

Alguém sabe como posso fazer pra que minha variável "enemiesAttack" verifique se o objeto é diferente de nulo antes de pegar ele ?, por que caso eu não faça essa verificação e bata no inimigo 1 (enemy1) estoura um erro dizendo que ele não conseguiu achar as variáveis do inimigo 2 (enemy2) e vice versa, tentei fazer dessa forma, mas na Unity da erro dizendo que não posso fazer isso (provavelmente algum erro na escrita):


Código:
Collider2D[] enemiesAttack = Physics2D.OverlapBoxAll (attackCheck.position,new Vector2 (attackRangeX,attackRangeY),0,layerEnemy);
 for (int i = 0; i < enemiesAttack.Length; i++)
 {

 enemiesAttack [i].GetComponent<Enemy1> ().TakeDamage (damage) != null;

 enemiesAttack [i].GetComponent<Enemy2> ().Knockback ()!= null;
 enemiesAttack [i].GetComponent<Enemy2> ().TakeDamage (damage)!= null;

 }

QueriaStarMorto
Avançado
Avançado

PONTOS : 691
REPUTAÇÃO : 19
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por MarcosSchultz em Qui Set 27, 2018 4:37 pm

Poderia postar o código completo?

Eu geralmente uso Raycast para alocar o componente em uma variável e depois pergunto se a variável existe.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62628
REPUTAÇÃO : 2410
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null Aad8pUi

https://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por QueriaStarMorto em Ter Out 02, 2018 9:53 pm

Código:
   
   private float timeBtwAttack;
   public float startTimeBtwAttack;
   public float attackRangeX;
   public float attackRangeY;

   public int damage;
if (timeBtwAttack <= 0)
      {
         if (Input.GetKeyDown (KeyCode.K))
         {
            PlayerAttack ();
            anim.SetTrigger ("Attack_1");
            

            timeBtwAttack = startTimeBtwAttack;


         }

      else
      {
         timeBtwAttack -= Time.deltaTime;
      }

 void PlayerAttack()
   {
      Collider2D[] enemiesAttack = Physics2D.OverlapBoxAll (attackCheck.position,new Vector2 (attackRangeX,attackRangeY),0,layerEnemy);
      for (int i = 0; i < enemiesAttack.Length; i++)
      {
         

            enemiesAttack [i].GetComponent<Enemy02> ().TakeDamage (damage);

            enemiesAttack [i].GetComponent<Enemy01> ().Knockback ();
            enemiesAttack [i].GetComponent<Enemy01> ().TakeDamage (damage);


         Debug.Log (enemiesAttack [i].name);
      }
   }

QueriaStarMorto
Avançado
Avançado

PONTOS : 691
REPUTAÇÃO : 19
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por MarcosSchultz em Qua Out 03, 2018 3:49 pm

O script completo por favor, esse ai nem tem void Update
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62628
REPUTAÇÃO : 2410
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null Aad8pUi

https://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por QueriaStarMorto em Qui Out 04, 2018 6:21 pm

Ok, não tinha mandado tudo por conta de ter muita coisa obsoleta que não tem muito haver com essa parte do script que estou tendo problema, além de estar bem desorganizado kk. Aqui está:

Player Script:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using EZCameraShake;
using UnityEngine.SceneManagement;

public class Player : MonoBehaviour {

   public float speed;
   public float forceJump;
   private float inputHorizontal;
   public int Health;


   //Componentes Do Player

   private Rigidbody2D rb2d;
   private Animator anim;
   private Transform playerTransform;
   private SpriteRenderer sprite;

   public float raio;
   public LayerMask layerGround;
   public bool Grounded;
   public Transform checkGround;
   private bool isJumping;

   public bool invunerable = false;
   public bool isAlive = true;
   private bool face;


   //Variaveis do Ataque
   public Transform attackCheck;
   //public float radiusAttack;
   public LayerMask layerEnemy;
   private float timeNextAttack;

   private float timeBtwAttack;
   public float startTimeBtwAttack;
   public float attackRangeX;
   public float attackRangeY;

   public int damage;


   public Animator animScreen;         


   public bool liberaFlip = true;
   private AudioSource audioTeste;


   void Start ()
   {
      rb2d = GetComponent<Rigidbody2D> ();
      anim = GetComponent<Animator> ();
      playerTransform = GetComponent<Transform> ();
      sprite = GetComponent<SpriteRenderer> ();
      audioTeste = GetComponent<AudioSource> ();
      
   }
   
   // Update is called once per frame
   void Update ()
   {

      if(Input.GetKeyDown(KeyCode.R))
      {
         SceneManager.LoadScene (SceneManager.GetActiveScene ().name);
      }




      if (Input.GetButtonDown ("Jump") && Grounded == true)
      {

         if (isAlive)
         {
            isJumping = true;

         }
      }
      
      if(isAlive)
      {
         if (timeBtwAttack <= 0)
         {
            if (Input.GetKeyDown (KeyCode.K))
            {
               PlayerAttack ();
               anim.SetTrigger ("Attack_1");
       

               timeBtwAttack = startTimeBtwAttack;

            }
            else
            {
               timeBtwAttack -= Time.deltaTime;
            }
      
     }




   }

   void FixedUpdate()
   {
      Grounded = Physics2D.OverlapCircle (checkGround.position, raio, layerGround);

      if (isAlive)
      {


         if (isAlive)
         {
            inputHorizontal = (Input.GetAxis ("Horizontal"));
            anim.SetFloat ("Speed", Mathf.Abs (inputHorizontal));

            rb2d.velocity = new Vector2 (speed * inputHorizontal, rb2d.velocity.y);
         }

         //Animações pulo
         anim.SetFloat ("Y", rb2d.velocity.y);
         anim.SetBool ("Chao", Grounded);



         if ((inputHorizontal < 0 & !face) || (inputHorizontal > 0 & face))
         {
            Flip ();
         }

         if (isJumping)
         {
            rb2d.AddForce (new Vector2 (0f, forceJump));
            isJumping = false;
            anim.SetTrigger ("Jump");
         }

      }

      else
      {
         rb2d.velocity = new   Vector2 (0, rb2d.velocity.y);
      }
         

   }

   void Flip()
   {
      if(liberaFlip)
      {
         face = !face;
         Vector3 scala = playerTransform.localScale;
         scala.x *= -1;
         playerTransform.localScale = scala;
      }

      if (liberaFlip == false)
      {
      }
   }

//    void PlayerAttack()
//   {
//      Collider2D[] enemiesAttack = Physics2D.OverlapBoxAll (attackCheck.position,new Vector2 (attackRangeX,attackRangeY),0,layerEnemy);
//      for (int i = 0; i < enemiesAttack.Length; i++)
//      {
//         enemiesAttack [i].GetComponent<Enemy02> ().TakeDamage (damage);

//         //enemiesAttack [i].GetComponent<Enemy01> ().Knockback ();
//         //enemiesAttack [i].GetComponent<Enemy01> ().TakeDamage (damage);
//
//         Debug.Log (enemiesAttack [i].name);
//      }
//   }

   void OnDrawGizmos()
   {
      Gizmos.color = Color.red;
      Gizmos.DrawWireCube (attackCheck.position, new Vector3(attackRangeX,attackRangeY,1));
   }






   void Damage()
   {

      anim.SetTrigger ("Hit");
      invunerable = false;

   }


   public void DamagePlayer()
   {

      if (isAlive)
      {
         invunerable = true;
         Health--;
         Damage();
         if (Health < 1)
         {
            isAlive = false;
            anim.SetTrigger ("Death");
            Invoke ("ReloadLevel", 3f);
         }

      }


   }
      


   void ReloadLevel()
   {
      SceneManager.LoadScene (SceneManager.GetActiveScene ().name);
   }




}

Void Chamada no Script do Inimigo 2:

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Enemy02 : MonoBehaviour {

   public int health;
   public int damageDoPlayer;

   private Animator wreckingAnim;
   private SpriteRenderer sprite;

   public Slider healthBar;

   private Player scriptPlayer;


   //ParticlesEffects
   public GameObject PartCollsionGround;
   public GameObject particleHit;
   public GameObject particleDeath;

   //Sound effects

   public AudioClip PlayerHit;
   public AudioClip impactGround;
   public AudioClip explosionFX;



   void Start ()
   {

      sprite = GetComponent<SpriteRenderer> ();
      wreckingAnim = GetComponent<Animator> ();
      scriptPlayer = GameObject.FindGameObjectWithTag ("Player").GetComponent<Player> ();

   
   }
   
   
   // Update is called once per frame
   void Update ()
   {

      Debug.Log (health);

      healthBar.value = health;
   
   }
   
   
   public void TakeDamage(int damage)
   {
      health -= damage;
      Instantiate (particleHit, transform.position, Quaternion.identity);
      StartCoroutine (DamageEffect ());
      SoundManager.instance.PlayFxEnemy(PlayerHit);


      if(health <= 0)
      {
         wreckingAnim.SetTrigger ("Death");
         Invoke ("ParticlesDeath", 3f);
         Destroy(gameObject,4f);

      }
   }


   IEnumerator DamageEffect()
   {
      sprite.color = Color.red;
      yield return new WaitForSeconds (0.1f);
      sprite.color = Color.white;
   }



   void ParticlesDeath()
   {
      SoundManager.instance.PlayFxEnemy (explosionFX);
      sprite.enabled = false;
      Instantiate(particleDeath,transform.position,Quaternion.identity);
   }




   void OnTriggerEnter2D(Collider2D col)
   {

      //Função responsável por causar dano ao player
      if (col.CompareTag ("Player"))
      {

         if (!scriptPlayer.invunerable && scriptPlayer.Health > 0)
         {
            scriptPlayer.DamagePlayer ();
            scriptPlayer.animScreen.SetTrigger ("ScreenHit");
         }

      }


   }

}

Void Chamada no Script do Inimigo 1:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy01 : MonoBehaviour {
   

   public int health;
   public float speed;
   public int damageDoPlayer; //Dano que o player causa no inimigo
   private Rigidbody2D rb;
   private bool facingRight;
   private Transform enemyTransform;

   //Variaveis do Chão
   public LayerMask groundLayer;
   public float raio;
   public Transform checkgroundd;
   private bool isGrounded;


   //public float walkDistance;
   //private bool walk;
   //private bool attack = false;
   //private Transform target;
   //private float targetDistance;
   //public float attackDistance;
   //public float patrolDistance;
   //private Animator anim;
   //private bool podeAndar;


   //private float timeBtwEnemyAttack;
   //public float startTimeBtwEAttack;

   private Player playerScript;

   private SpriteRenderer spriteEnemy;

   public Vector2 directionEnemy;

   //private int damageShot = 1;

   void Start () {

      rb = GetComponent<Rigidbody2D> ();
      enemyTransform = GetComponent<Transform> ();
      target = FindObjectOfType<Player>().transform;
      anim = GetComponent<Animator> ();
      playerScript = GameObject.FindGameObjectWithTag("Player").GetComponent<Player>();
      spriteEnemy = GetComponent<SpriteRenderer> ();
      directionEnemy = Vector2.right;
      //timeBtwEnemyAttack = startTimeBtwEAttack;


   }
   
   // Update is called once per frame
   void Update ()
   {
      Debug.Log (health);

      isGrounded = Physics2D.OverlapCircle (checkgroundd.position, raio, groundLayer);

      if (transform.localScale.x > 0)
      {
         directionEnemy = Vector2.zero;
         directionEnemy += Vector2.right;

      }

      else
      {
         directionEnemy = Vector2.zero;
         directionEnemy += Vector2.left;
      }


      if(playerScript.transform.position.x >= transform.position.x)
      {
         if (!facingRight)
         {
            Flip ();
         }
      }

      if(playerScript.transform.position.x <= transform.position.x)
      {
         if (facingRight)
         {
            Flip ();
         }
      }
   }

   public void TakeDamage(int damage)
   {
      health -= damage;


      StartCoroutine (DamageEffect ());


      if(health <= 0)
      {
         Destroy(gameObject);
      }
   }

//   public void StartDamageEffect()
//   {
//      StartCoroutine (DamageEffect ());
//   }

   //Corrotina do efeito de dano
   IEnumerator DamageEffect()
   {
      spriteEnemy.color = Color.red;
      yield return new WaitForSeconds (0.1f);
      spriteEnemy.color = Color.white;
   }

   void OnTriggerEnter2D(Collider2D col)
   {

//      if (col.CompareTag ("PlayerAttack"))
//      {
//         Knockback ();
//         TakeDamage (damageDoPlayer);
//      }

      //Função responsável por causar dano ao player
      if (col.CompareTag ("Player"))
      {

         if (!playerScript.invunerable && playerScript.Health > 0)
         {
            playerScript.DamagePlayer ();
            playerScript.animScreen.SetTrigger ("ScreenHit");
         }

      }

      switch (col.tag)
      {
      case "BigStump":
         rb.AddForce (Vector2.up * 600f);
         break;
   
      case"SmallStump":
         rb.AddForce   (Vector2.up * 450f);
         break;
         
         
      }


         
   }
      

   protected void Flip()
   {
      facingRight = !facingRight;

      Vector3 scale = transform.localScale;
      scale.x *= -1;
      transform.localScale = scale;
   }
      

   public void Knockback()
   {
      if (transform.localScale.x > 0)
      {
         iTween.MoveBy (gameObject, new Vector3 (1.5f * directionEnemy.x, 0.1f, 0), 0.3f);
      }

      else
      {
         iTween.MoveBy (gameObject, new Vector3 (1.5f * directionEnemy.x, 0.1f, 0), 0.3f);
      }
   }


   void OnCollisionEnter2D(Collision2D other)
   {
      if (other.gameObject.CompareTag ("Player"))
      {
         rb.velocity = Vector2.zero;
         rb.isKinematic = true;
      }
   }

   void OnCollisionExit2D(Collision2D other)
   {
      if (other.gameObject.CompareTag ("Player"))
      {
         rb.isKinematic = false;
      }
   }   
      
}

QueriaStarMorto
Avançado
Avançado

PONTOS : 691
REPUTAÇÃO : 19
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por MarcosSchultz em Sab Out 06, 2018 2:24 am

Código:
   void PlayerAttack(){
      Collider2D[] enemiesAttack = Physics2D.OverlapBoxAll (attackCheck.position,new Vector2 (attackRangeX,attackRangeY),0,layerEnemy);
      for (int i = 0; i < enemiesAttack.Length; i++) {
         
         Enemy01 tempEnemy1 = enemiesAttack [i].GetComponent<Enemy01> ();
         if (tempEnemy1) {
            tempEnemy1.Knockback ();
            tempEnemy1.TakeDamage (damage);
         }

         Enemy02 tempEnemy2 = enemiesAttack [i].GetComponent<Enemy02> ();
         if (tempEnemy2) {
            tempEnemy2.TakeDamage (damage);
         }
          Debug.Log (enemiesAttack [i].name);
      }
   }

Em tese isso resolve qualquer problema, mas os códigos em si apresentam vários outros tipos de erro, de sintaxe, falta de bibliotecas, etc.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 62628
REPUTAÇÃO : 2410
Idade : 23
Áreas de atuação : Administrador do fórum
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null Aad8pUi

https://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Como verificar se o objeto é diferente de null

Mensagem por QueriaStarMorto em Sab Out 06, 2018 8:41 pm

Muito obrigado

QueriaStarMorto
Avançado
Avançado

PONTOS : 691
REPUTAÇÃO : 19
Respeito as regras : [RESOLVIDO] Como verificar se o objeto é diferente de null WvDYdlf

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum