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:
Alterar função no Event Trigger
Gerador de senha
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
como encontrar um script em um determinado objeto
[Sorteio] - Sorteio de uma Key gratuita para um dos meus assets!
Transparência em múltiplos sprites
[___COMO UTILIZAR O FÓRUM___] Principais botões e suas funções
[____ADMINISTRAÇÃO____] PRECISO DE AJUDA [DICA PARA SER AJUDADO]
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
[TUTORIAL] Sistema de Lanterna com Pilhas
Grama de terreno mudou textura e não consigo identificar o motivo
SAVE ME - Game em desenvolvimento para estudo.
Comandos touch
Fontes de sprites em pixel art
Ajustar movimentação da câmera
Rescale ou Redimenção da imagem.
[RESOLVIDO] Animação Em Legacy
animação com avatar mask
[RESOLVIDO] troca de cena faz os Botoes UI não funcionarem
Direito autoral sobre imagem?
[TUTORIAL] Importando animação do mixamo para Unity3d.
Ajuda em código com Events!
[ANDROID]Cena TRAVA e não carrega ao tentar iniciar pelo menu
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
[RESOLVIDO] Problema com Varíavel Estática
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
[JOGO] Tetris em Unity - Para tutorial
Matematica e duvida de de calculos
Pessoa com conhecimento em Unity e criação de sprites
Cronor Estudios RECRUTANDO PARA EQUIPE! [Pagando]
Dúvida com Animação!
Adcionar Porcentagem "%" em um texto UI
Pack de áudio/ efeitos sonoros gratuitos.
Como fazer som de passos no Third Person User Control
Aparecer item comprado
[RESOLVIDO] Instanciar explosões dentro de uma area circular
Jogo para limitar a nave dentro da tela
Alterar caminho Application.persistentDataPath
[TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
Acessar câmera frontal
Otimização de array vector3
[TUTORIAL] Converter uma variável String em Vetores
Problema no ontriggerenter!!!!
mover objetos "rigados"
Dúvida com Contador no Unity
Button
Anim em Gif
[RESOLVIDO] Camera ViewPort Rect
Blob Shadows
duvida em comentarios no c#
Tirar mais de uma foto
Easy Criatura Controle IA
Text multiuplayer
using UnityEngine.networking
Ajuda com script de escolhas de ações antes de iniciar jogo
ajuda em adcionar novos produtos
[RESOLVIDO] Input field enter
Controles desabilitando
Unity e windows 10
Ajuda com a Câmera (Culling Mask)
Script de Spawn Aleatório
[TUTORIAL] Mover, arremessar e girar objetos com o mouse
Como se faz um mini-mapa?
Geração procedural de mapa para a nova versão do Unity 2018
Como ter varios prefabs com o msm script e um nao alterar o outro?
Como acessar um script que esta no pai?
Movimentação por sqm
Como faço um som parar de tocar?
Mudar skin através de galeria do celular
COMO FAÇO O SISTEMA DE CHUVA ESTILO ETS2 COM GOTAS NO PARA BRISA?
Random.State Altera a seed de todos os scripts?
AI Enemy Ajuda
Easy Mesh Combiner MT - Combine suas malhas de maneira rápida e FÁCIL!
Captura de imagem
[Recomendação] Código Limpo
Sobre colisões em objetos 2D
[RESOLVIDO] COMO FAZ PARA DESATIVAR E ATIVAR UM BOTÃO UI PELO TRIGGER??
Dar recompensa ao ver propaganda ADMOB - CONSTRUCT 2 - Intel XDK
Erro Visual Studio Code .NETFramework v4.7.2
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
(Dúvida) iRDS - Inteligencia artificial para carros.
de flash pra unity
Como faço para por input de agachar
[RESOLVIDO] Unity 2018.3.0f2 (64-bit) não deixa apagar Componente Importado
PlayerPrefs??
[RESOLVIDO] Deslizar nas paredes (3D)
[RESOLVIDO] Ajuda com Instantiate e SetParent
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Estou desenvolvendo jogo em FNA XNA e Nao consigo fazer o player agachar
Como fazer objetos com a mesma TAG não se colidir?
Participe da IDB Jam #1
Ajuda com modelo 3d de Casa
COMO PROJETAR ANIMAÇÕES VISUAIS E DE AÚDIO NO VISUAL STUDIO ( WINDOWS FORM)?
[RESOLVIDO] Cena em modo Portrait e Landscape
[TUTORIAL] Mover personagem com Touch, no estilo SUBWAY SURFERS
Ajuda em Level Design e arte
[RESOLVIDO] IAP não está funcionando depois que faço o build
Error ao Gerar a KeyStore do Apk Android
Iniciando com Scripted Events
Hoje à(s) 12:59 pm
Hoje à(s) 10:31 am
Ontem à(s) 7:36 pm
Ontem à(s) 6:39 pm
Ontem à(s) 3:40 pm
Qua Fev 20, 2019 4:48 pm
Qua Fev 20, 2019 4:42 pm
Qua Fev 20, 2019 4:41 pm
Qua Fev 20, 2019 4:40 pm
Qua Fev 20, 2019 3:36 pm
Qua Fev 20, 2019 2:43 pm
Qua Fev 20, 2019 12:11 pm
Qua Fev 20, 2019 10:15 am
Ter Fev 19, 2019 11:31 pm
Ter Fev 19, 2019 5:24 pm
Ter Fev 19, 2019 1:14 pm
Ter Fev 19, 2019 12:40 pm
Ter Fev 19, 2019 12:02 am
Seg Fev 18, 2019 9:28 pm
Seg Fev 18, 2019 10:27 am
Seg Fev 18, 2019 2:30 am
Dom Fev 17, 2019 11:00 pm
Dom Fev 17, 2019 10:58 pm
Dom Fev 17, 2019 8:35 pm
Dom Fev 17, 2019 7:51 pm
Dom Fev 17, 2019 5:39 pm
Dom Fev 17, 2019 3:34 pm
Dom Fev 17, 2019 2:54 pm
Dom Fev 17, 2019 2:30 pm
Dom Fev 17, 2019 2:13 pm
Dom Fev 17, 2019 1:11 pm
Dom Fev 17, 2019 12:42 am
Sab Fev 16, 2019 6:14 pm
Sab Fev 16, 2019 11:38 am
Sab Fev 16, 2019 7:46 am
Sex Fev 15, 2019 7:23 pm
Sex Fev 15, 2019 6:34 pm
Sex Fev 15, 2019 9:20 am
Qui Fev 14, 2019 9:00 pm
Qui Fev 14, 2019 8:58 pm
Qui Fev 14, 2019 8:53 pm
Qui Fev 14, 2019 11:57 am
Qua Fev 13, 2019 10:40 pm
Qua Fev 13, 2019 8:10 pm
Qua Fev 13, 2019 1:11 pm
Qua Fev 13, 2019 9:48 am
Qua Fev 13, 2019 9:25 am
Qua Fev 13, 2019 9:23 am
Ter Fev 12, 2019 11:03 pm
Ter Fev 12, 2019 4:15 pm
Ter Fev 12, 2019 4:07 pm
Ter Fev 12, 2019 2:07 pm
Ter Fev 12, 2019 1:14 pm
Ter Fev 12, 2019 4:32 am
Ter Fev 12, 2019 4:06 am
Ter Fev 12, 2019 2:03 am
Ter Fev 12, 2019 12:54 am
Ter Fev 12, 2019 12:52 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:26 am
Ter Fev 12, 2019 12:19 am
Ter Fev 12, 2019 12:13 am
Ter Fev 12, 2019 12:05 am
Seg Fev 11, 2019 11:46 pm
Seg Fev 11, 2019 11:28 pm
Seg Fev 11, 2019 10:43 pm
Seg Fev 11, 2019 10:39 pm
Seg Fev 11, 2019 10:30 pm
Seg Fev 11, 2019 10:26 pm
Seg Fev 11, 2019 8:09 pm
Dom Fev 10, 2019 7:23 pm
Dom Fev 10, 2019 5:59 pm
Dom Fev 10, 2019 7:19 am
Dom Fev 10, 2019 12:25 am
Sex Fev 08, 2019 12:40 am
Qui Fev 07, 2019 7:53 pm
Qui Fev 07, 2019 6:23 pm
Qua Fev 06, 2019 5:36 pm
Ter Fev 05, 2019 6:21 pm
Ter Fev 05, 2019 4:32 pm
Seg Fev 04, 2019 9:23 pm
Seg Fev 04, 2019 2:00 pm
Seg Fev 04, 2019 1:58 pm
Seg Fev 04, 2019 11:26 am
Dom Fev 03, 2019 10:39 pm
Dom Fev 03, 2019 3:36 pm
Dom Fev 03, 2019 12:23 pm
Dom Fev 03, 2019 12:54 am
Sab Fev 02, 2019 5:41 pm
Sab Fev 02, 2019 3:28 pm
Sab Fev 02, 2019 1:16 pm
Sex Fev 01, 2019 6:21 pm
Sex Fev 01, 2019 3:24 pm
Sex Fev 01, 2019 11:18 am
Qui Jan 31, 2019 11:17 pm
Qui Jan 31, 2019 9:24 pm
Qui Jan 31, 2019 8:17 pm
Qui Jan 31, 2019 7:21 pm
Qui Jan 31, 2019 3:06 pm
Weslley
Madness
marcos4503
adenilson romao
marcos4503
Selzler
dstaroski
dstaroski
dstaroski
SmithSchuldiner
Daniel Dória
JohnRambo
marcos4503
Flávio
rafaelholanda
marcos4503
marcos4503
Zack2
Magnatah
Daniel Dória
fabricadegame
MarcosSchultz
MarcosSchultz
Daniel Dória
vitorhugo
fabricadegame
fabricadegame
Madness
AzulBananaFosco
AzulBananaFosco
adenilson romao
Madness
fabricadegame
guimaraf
Encracker
Flávio
Flávio
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
AnderGames
MarcosSchultz
Zack2
Callyde Jr
Weslley
numb123
numb123
Isabela
Weslley
Weslley
Unidade3d5
richerd
hetrodo
Fabio Palacios
Encracker
Encracker
guimaraf
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Kayke_27
AnderGames
Mark1nDeveloper
marcos4503
JohnRambo
guimaraf
Tegh
Kayke_27
wolney.almeida
Tegh
Weslley
guimaraf
JohnRambo
JohnRambo
glauco
speedluk
NKKF
gilgsjr
soohzinha
Lynx777
MayLeone
dimmuo
glauco
KAYLLONBR
JrdeAmorim
Édipo
Agios
vanderval
francisco barroso
bielTuvel

[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 : 325
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.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61441
REPUTAÇÃO : 2154
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 : 325
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
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61441
REPUTAÇÃO : 2154
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 : 325
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.
MarcosSchultz
MarcosSchultz
Administrador

Masculino PONTOS : 61441
REPUTAÇÃO : 2154
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 : 325
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