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:
Como Faz pra barra de vida aparecer de uma cena pra outra?
Unity + Photon 2
[TUTORIAL] Sistema de vida,morte,dano
[TUTORIAL] Sistema de tiro com RAYCAST (várias armas, mira laser, munição, dano, etc, etc)
[RESOLVIDO] Problema com cenário infinito ou algum tipo de bug na Unity?
iniciar jogo com uma cena desativada e ativá-la ao colidir com bloco desativando as outras
Unity Remota 5, sem reação.
Procuro Equipe Para Criação de Jogo [PAGO]
Procuro Map Designer [PAGO $$$] (criador de mapas)
[PROJETO MOBILE] Defeat the Illuminatis
[TUTORIAL] Sistema de Oficina de Carros
[RESOLVIDO] Unity 2018 - Bug com a iluminação da Spotlight nos Objetos
[TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
[TUTORIAL] Barra de VIDA / HP contínua
Salvar e carregar dados json player pref
Blander ao juntar algumas partes ficam mais escuro
Problema com Esqueleto do personagem
{Possível Projeto para Unity} Buscando membros para formar uma Equipe...
[TUTORIAL] Como spawnar inimigos [Tutorial simples]
Não consigo fazer o box collider descer junto com o personagem.
BUG UNITY 3D ROSA A SCENE E GAME
Sistema de Grau Realista - Jogo de Moto
(Dúvida) Encontrar o objeto mais próximo partindo do ponto inicial ao final.
Programação Unity android 2D
(UNITY) Erro ao compilar a Build Android
Erro na sincronização dos player no Photon
[TUTORIAL] Barra de vida usando a UI da Unity(Slider)
[Projeto] Line Battle
[TUTORIAL] Desbloqueio e Escolha de Personagens.
[RESOLVIDO] Problema com o navmesh agent
[RESOLVIDO] Registro cadrastando uma vez?
Vaga de modelador 3D, com remuneração...
Problemas com Colisores
[____ENQUETE____] Eleições para presidente 2018 (2º turno)
Como criar Atlas de textura com modelos exportados do Sketchup?
Unity - Sistema de Pagamento
[RESOLVIDO] iniciar áudio ao passar por uma área da cena
[RESOLVIDO] como envia asset para asset store
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
codigo não deleta prefab e não respeita o if
[TUTORIAL] Filtros de áudio para AudioListner (Low pass filter, High pass filter, etc)
[____CICLO DE TRABALHO DA UNITY____]
Meu jogo não está abrindo em outro PC
[TUTORIAL] DANO POR QUEDA e BARRA DE VIDA CONTÍNUA no mesmo script
Discord para desenvolvimento de jogos
FAB in WWII (Novo jogo na Play Storee é Free :D)
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Sistema de PORTAS e CHAVES
Criar uma Array ou List com as resoluções suportadas
Alguem traz esse tutorial pro forum?
Realistic fps prefab tenho esses erros ao tentar colocar um script de entrar sair do carro
[RESOLVIDO] Alguem pode me ajudar? tenho esse erro aqui em um script
[RESOLVIDO] Personagem 2d batendo na borda e voando.
[RESOLVIDO] Não consigo usar o Sphere collider.
[RESOLVIDO] Como usa o UI.Text do unity?
Como criar botão de nova tentativa
[RESOLVIDO] Duvida em Jogo de tiro 2D
[RESOLVIDO] duvida com PlayerPrefs
Iniciar animação em determinado frame
Sistema De Troca De Armas 2D
[TUTORIAL] Script de arma completo! [FREE]
[TUTORIAL] Ordenar valores de uma array[] em ordem CRESCENTE OU DECRESCENTE
Meu jogo de runner em primeira pessoa !
[RESOLVIDO] Timer pra mudar de cena na unity 2018
Atualizar Build
[TUTORIAL] 42 ÓTIMAS DICAS DE OTIMIZAÇÃO PARA JOGOS MOBILE (Android)
Como usar Vector3.Angles para detectar que algo está na frente de outro objeto?
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão?
Script nao funciona
Como desativar scripts em objetos distantes
[RESOLVIDO] Bug Da Unity ?
[AULA] HTML - Aula 1: Introdução
Raycast
[TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
Problema com a unity ads
como eu faço para a camera orbitar um objeto atraves de um joystick?????
XML, suporte e utilização.
Arrastar objetos em plano 2D (ArrastarT).
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
Participe da Game Jam - Jaaj do canal Amdré Young!
Criar sistema de arrastar e soltar objetos em determinado lugar
AWM Champions I
[RESOLVIDO] Como verificar se o objeto é diferente de null
COMO FAÇO PARA FAZER UM SISTEMA DE SKIN PARA ANDROID ESTILO HEAVY BUS, PROTON BUS, ETC
[TUTORIAL] Snake com Unity + C#
Sobre Som (Ouvir som do sistema , duas caixas de som ... )
Configurar NPCs
[RESOLVIDO] Script Carta
[TUTORIAL] Texto Legenda Character Por Character Para Uso Básico
Ajuda com script movimento por Grid Tile no Navmesh
[Devlog] Lost in the world 05/10
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
inimigo nao persegue player
[RESOLVIDO] Build setting não entra
[RESOLVIDO] Player Sair Da animaçao
[RESOLVIDO] Erro colider
Dúvida sobre Resolução
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[____ENQUETE____] Eleições para presidente 2018
Hoje à(s) 10:57 am
Hoje à(s) 9:19 am
Ontem à(s) 11:13 pm
Ontem à(s) 10:57 pm
Ontem à(s) 10:24 pm
Ontem à(s) 8:00 pm
Ontem à(s) 7:51 pm
Ontem à(s) 7:23 pm
Ontem à(s) 7:18 pm
Qui Out 18, 2018 7:17 pm
Qui Out 18, 2018 7:09 pm
Qui Out 18, 2018 4:52 pm
Qui Out 18, 2018 2:57 pm
Qui Out 18, 2018 10:36 am
Qui Out 18, 2018 9:49 am
Qua Out 17, 2018 11:45 pm
Qua Out 17, 2018 11:17 pm
Qua Out 17, 2018 10:14 pm
Qua Out 17, 2018 9:49 pm
Qua Out 17, 2018 8:32 pm
Qua Out 17, 2018 5:18 pm
Qua Out 17, 2018 5:16 pm
Qua Out 17, 2018 5:13 pm
Qua Out 17, 2018 5:13 pm
Qua Out 17, 2018 5:10 pm
Qua Out 17, 2018 4:35 pm
Qua Out 17, 2018 3:13 pm
Qua Out 17, 2018 7:28 am
Ter Out 16, 2018 3:34 pm
Ter Out 16, 2018 12:41 pm
Ter Out 16, 2018 11:48 am
Seg Out 15, 2018 5:34 pm
Seg Out 15, 2018 5:03 pm
Seg Out 15, 2018 2:46 pm
Seg Out 15, 2018 1:19 pm
Seg Out 15, 2018 12:56 pm
Seg Out 15, 2018 11:34 am
Seg Out 15, 2018 6:17 am
Seg Out 15, 2018 12:30 am
Seg Out 15, 2018 12:18 am
Dom Out 14, 2018 12:52 am
Sab Out 13, 2018 9:08 pm
Sab Out 13, 2018 5:24 pm
Sab Out 13, 2018 4:00 pm
Sex Out 12, 2018 6:00 pm
Sex Out 12, 2018 2:56 pm
Sex Out 12, 2018 2:55 pm
Sex Out 12, 2018 2:42 pm
Qui Out 11, 2018 8:59 pm
Qui Out 11, 2018 8:32 pm
Qui Out 11, 2018 3:09 pm
Qui Out 11, 2018 2:32 pm
Qui Out 11, 2018 12:15 pm
Qui Out 11, 2018 11:35 am
Qui Out 11, 2018 10:50 am
Qui Out 11, 2018 8:24 am
Qua Out 10, 2018 11:31 pm
Qua Out 10, 2018 10:43 pm
Qua Out 10, 2018 8:22 pm
Qua Out 10, 2018 4:53 pm
Qua Out 10, 2018 4:44 pm
Qua Out 10, 2018 3:48 pm
Qua Out 10, 2018 12:40 pm
Ter Out 09, 2018 9:51 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:16 pm
Ter Out 09, 2018 8:10 pm
Ter Out 09, 2018 8:09 pm
Ter Out 09, 2018 7:38 pm
Ter Out 09, 2018 2:55 pm
Seg Out 08, 2018 6:13 pm
Seg Out 08, 2018 4:40 pm
Seg Out 08, 2018 2:39 pm
Seg Out 08, 2018 12:52 pm
Seg Out 08, 2018 12:16 pm
Seg Out 08, 2018 10:33 am
Dom Out 07, 2018 1:59 pm
Dom Out 07, 2018 11:53 am
Dom Out 07, 2018 10:53 am
Sab Out 06, 2018 11:14 pm
Sab Out 06, 2018 10:55 pm
Sab Out 06, 2018 8:50 pm
Sab Out 06, 2018 8:41 pm
Sab Out 06, 2018 2:21 pm
Sab Out 06, 2018 1:33 pm
Sab Out 06, 2018 2:04 am
Sex Out 05, 2018 8:22 pm
Sex Out 05, 2018 7:39 pm
Sex Out 05, 2018 6:35 pm
Sex Out 05, 2018 11:27 am
Sex Out 05, 2018 11:22 am
Sex Out 05, 2018 9:35 am
Sex Out 05, 2018 12:53 am
Qui Out 04, 2018 11:40 pm
Qui Out 04, 2018 10:43 pm
Qui Out 04, 2018 6:23 pm
Qui Out 04, 2018 3:36 pm
Qui Out 04, 2018 3:12 pm
Qui Out 04, 2018 3:11 pm
hao3726
hao3726
francisco barroso
galil
FabioBRPA
MarcosSchultz
francisco barroso
SoullSec
SoullSec
dstaroski
leandrospp7
CaerHunter
Mourao
francisco barroso
dstaroski
DominicDK
DominicDK
NoctisLucis
francisco barroso
MayLeone
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
francisco barroso
hao3726
dstaroski
dstaroski
ismarspn
Jmspp
Callyde Jr
igorobm
conceptfac
Dom3000
Isabela
Callyde Jr
Daniel Dória
diegopds
MarcosSchultz
igorobm
MarcosSchultz
MarcosSchultz
Flávio
francisco barroso
SuperGamer
SoullSec
SoullSec
SoullSec
Flávio
francisco barroso
Samuelostgamer
Samuelostgamer
gurgelg752
luansantos
guimaraf
theus.mors
TecnoGames
Eduardoro39
QueriaStarMorto
QueriaStarMorto
mecjo
NyanHeavyBR
CaioItz
RodriGO3477
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
FelipeSouza11
FelipeSouza11
QueriaStarMorto
Tegh
Jmspp
Callyde Jr
Jmspp
Gabryellx007
Tegh
Tegh
SuperGamer
Luizdanhp
MarcosSchultz
TioUV
QueriaStarMorto
KAYKETHEO27
NKKF
MarcosSchultz
Callyde Jr
francisco barroso
FelipeSouza11
Nowsfeky
Mateus2583
FelipeSouza11
Callyde Jr
Daniel Dória
marcosdanielnerydasilva
francisco barroso
NKKF
dstaroski
dstaroski

[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 : 199
REPUTAÇÃO : 19
Respeito as regras :

Ver perfil do usuário

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.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61053
REPUTAÇÃO : 2071
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://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 : 199
REPUTAÇÃO : 19
Respeito as regras :

Ver perfil do usuário

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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61053
REPUTAÇÃO : 2071
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://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 : 199
REPUTAÇÃO : 19
Respeito as regras :

Ver perfil do usuário

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.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 61053
REPUTAÇÃO : 2071
Idade : 22
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://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 : 199
REPUTAÇÃO : 19
Respeito as regras :

Ver perfil do usuário

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