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:
quero adicionar mais colisores a esse script de movimentação
Unity2018 - Desconectar jogador após acabar o tempo de jogo utilizando a rede Photon Bolt.
The freddy krueger's pie (Game)
RigidBody Agarrando no BoxCollider [Mobile 3D]
Usar o mouse?
click mouse
Como alterar informações de objeto UI
SEM CURSOR EM JOGO.
Conexão entre app Android e internet.
CURSOR DO MOUSE NÃO DESAPARECE AO CLICAR EM "JOGAR" NO MENU PRINCIPAL.
Script não funcionando
Destruir um objeto ao colidir com o componente dele.
RigidBodyFPSController não carrega o script, é do pacote standard assets
Preciso saber matemática para programar?
[RESOLVIDO] Prefab com altura diferente na Scene
Problema com os FPS do jogo
pq da erro ao tentar mover arquivo para unity
[RESOLVIDO] Como saber se um Transform está se movendo?
Problema com animaç]ao de fechar porta ao clicar com mouse raycast
Fala Pessoal! saiu um trailer da sequência do meu jogo Project Lazarus parte 2
Exportação do SketchUp para Unity
Como fazer com que os valores do bool sejam iguais ao da lista?
Como resolver problema com lag por conta de sprites Instanciados? Mesmo destruindo em 2f
[RESOLVIDO] Trocar valor de variável apos X segundos que ativar o triggercollider
Como abrir portas/gavetas com click do mouse, usando raycast!
PEGADAS DO PLAYER QUE APARECEM APÓS ANDAR SOBRE UMA ÁREA "ÚMIDA". UNITY 2D
[RESOLVIDO] Erro com Facebook SDK
Como deixar touch apenas 50% da tela (código que estou usando)
terreno plano pesa muito em mobile?
Dúvida sobre o script de Mover Objetos
Duvida sobre um sistema de Lap Timer junto com o box collider!
Como passar cena sem perder o que conseguiu em outra?
[RESOLVIDO] OverlapBox detectar colisão
APK trava com Admob
[Lançado] TapNav: Vaporwave Edition já está disponível!
[RESOLVIDO] Tentando implementar sons no Character Controller
como posso criar um filtro de cor igual post processing?
[RESOLVIDO] Problema com movimentação do Joystick
Inimigo aparecer depois de certa ação
Como redirecionar o usuário pelo app do Facebook?
[TUTORIAL] Codificar e Decodificar Numeros
Como fazer esse mesmo código usando ScriptableObject?
[RESOLVIDO] Pontuação na Unity 3D!
[RESOLVIDO] Unity 2018.2.17 Problemas com o Package Manager
BARRA DE ENERGIA NÃO RESETA QUANDO O PLAYER RENASCE.
[RESOLVIDO] Erro no pacote do Unity Ads
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Fazer o personagem apontar na direção do movimento
[TUTORIAL] Sistema de fome, sede, barra de vida, barra de estamina, itens e dano por queda
QUE ? Porque não funcionou ? :(
Personagem da AS, animações do mixamo dão erro ao usar avatar do personagem.
[RESOLVIDO] Meus personagens não iniciam animação no jogo compilado, o que pode ser ?
Como deixar touch apenas 50% da tela
Sistema de tiro teleguiado
[TUTORIAL] Script para jogo FPS Mobile
[RESOLVIDO] Como faço para o personagem entrar e sair do carro?
[RESOLVIDO] Como salvar itens da fase?
Oque é API?
Salvar dados unity
NavMesh em uma esfera
[TUTORIAL] Dicas Para Otimização de Código
[POR QUE O OBJETO FICA DEFORMADO QUANDO ROTACIONA?]
Jogo Maria Bella
[DUVIDA]sobre Time.deltaTime
SIGLETON
Shader Causa Tela Preta
Objeto continuar em movimento após tira o dedo da direção
"Problema" com o script de mover objetos versão free do Marcos Schultz
como fazer joystick's Mobile para shooter topDown ?
Unity 2018.2 Erro de janela no Editor
Duvida sobre um script de contagem 1, 2, 3, GO!.
Onde Encontro Música De Background Para o Meu Projeto?
problema na AI quando passa pro unity 2020
[RESOLVIDO] Problema em configurar o pneu de 1 carro no MSVehicle System Free
[RESOLVIDO] Dicas sobre criação de ruas??
[RESOLVIDO] Utilizar o Range
Sistema de Yu-Gi-Oh! - ATT [2020]
Meu jogo Mobile já disponivel na PlayStore ou GameJolt!!
Jogo Santuário Hebreu
[RESOLVIDO] Ancora em UIs
[RESOLVIDO] Uma dúvida sobre Quaternion.Inverse
freelancer para modelador
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
[RESOLVIDO] Rotacionar Prefab dentro da Scene
Salvamento de jogo utilizando o Google services
Como faço para animar meu personagem?
Desligando a colisão entre layers
Carro Pegar armas em
Rodas do carro nao ficao presas ao carro
Ajuda para jogo da memória! Aleatorizar Cartas
Ajuda compilar para android
como fazer um player se movimentar utilizando força centrípeta
Unity ou Unreal Engine ? Alguém que ja usou UE para opinar?
girar o personagem de acordo com o analógico
[TUTORIAL] Sistema de login com json
[TUTORIAL] Criando um simples Multiplayer [UNITY 5]
Girar a tela apenas horizontalmente
photon da erro quando instancia um prefab
Paint do Blender não funciona
Hoje à(s) 9:13 pm
Hoje à(s) 8:45 pm
Hoje à(s) 8:40 pm
Hoje à(s) 5:45 pm
Hoje à(s) 5:20 pm
Hoje à(s) 5:18 pm
Hoje à(s) 8:48 am
Hoje à(s) 7:14 am
Hoje à(s) 7:09 am
Ontem à(s) 1:36 pm
Ontem à(s) 9:07 am
Qua Set 16, 2020 10:22 pm
Qua Set 16, 2020 4:31 pm
Qua Set 16, 2020 11:10 am
Ter Set 15, 2020 11:02 pm
Ter Set 15, 2020 10:33 pm
Ter Set 15, 2020 10:32 pm
Ter Set 15, 2020 4:28 pm
Ter Set 15, 2020 10:52 am
Ter Set 15, 2020 5:13 am
Seg Set 14, 2020 2:51 pm
Seg Set 14, 2020 2:41 pm
Seg Set 14, 2020 1:46 pm
Seg Set 14, 2020 10:06 am
Seg Set 14, 2020 9:35 am
Seg Set 14, 2020 9:12 am
Seg Set 14, 2020 8:14 am
Seg Set 14, 2020 2:21 am
Seg Set 14, 2020 2:11 am
Dom Set 13, 2020 12:07 am
Sab Set 12, 2020 7:01 pm
Sab Set 12, 2020 5:34 pm
Sab Set 12, 2020 5:32 pm
Sab Set 12, 2020 1:28 pm
Sab Set 12, 2020 1:15 pm
Sab Set 12, 2020 12:20 pm
Sab Set 12, 2020 11:28 am
Sab Set 12, 2020 12:37 am
Sex Set 11, 2020 6:08 pm
Sex Set 11, 2020 3:30 pm
Sex Set 11, 2020 3:26 pm
Sex Set 11, 2020 12:59 pm
Sex Set 11, 2020 12:40 pm
Qui Set 10, 2020 7:39 pm
Qui Set 10, 2020 5:26 pm
Qui Set 10, 2020 12:01 pm
Qui Set 10, 2020 1:24 am
Qui Set 10, 2020 1:19 am
Qui Set 10, 2020 1:17 am
Qui Set 10, 2020 1:08 am
Qui Set 10, 2020 12:51 am
Qua Set 09, 2020 9:03 pm
Qua Set 09, 2020 4:43 pm
Qua Set 09, 2020 5:21 am
Ter Set 08, 2020 9:47 pm
Ter Set 08, 2020 7:47 pm
Ter Set 08, 2020 11:59 am
Ter Set 08, 2020 8:55 am
Seg Set 07, 2020 9:41 pm
Seg Set 07, 2020 8:32 pm
Seg Set 07, 2020 8:11 pm
Seg Set 07, 2020 7:07 pm
Seg Set 07, 2020 6:18 pm
Seg Set 07, 2020 2:06 am
Seg Set 07, 2020 1:52 am
Dom Set 06, 2020 8:29 pm
Dom Set 06, 2020 7:37 pm
Dom Set 06, 2020 6:37 pm
Dom Set 06, 2020 5:13 pm
Dom Set 06, 2020 5:12 pm
Dom Set 06, 2020 5:11 pm
Dom Set 06, 2020 4:33 pm
Dom Set 06, 2020 4:30 pm
Dom Set 06, 2020 3:46 pm
Dom Set 06, 2020 10:42 am
Sab Set 05, 2020 8:45 pm
Sab Set 05, 2020 7:29 am
Sex Set 04, 2020 6:53 pm
Sex Set 04, 2020 12:57 pm
Sex Set 04, 2020 10:06 am
Qui Set 03, 2020 8:11 pm
Qui Set 03, 2020 5:55 pm
Qua Set 02, 2020 9:57 pm
Qua Set 02, 2020 4:33 pm
Qua Set 02, 2020 2:49 pm
Qua Set 02, 2020 9:01 am
Qua Set 02, 2020 8:56 am
Ter Set 01, 2020 8:05 pm
Ter Set 01, 2020 3:54 pm
Ter Set 01, 2020 1:44 pm
Ter Set 01, 2020 1:24 pm
Seg Ago 31, 2020 9:43 pm
Seg Ago 31, 2020 7:15 pm
Seg Ago 31, 2020 5:58 pm
Seg Ago 31, 2020 1:44 pm
Seg Ago 31, 2020 1:37 pm
Seg Ago 31, 2020 9:37 am
Seg Ago 31, 2020 1:39 am
Dom Ago 30, 2020 11:58 pm
BatataBugada54321
Callyde Jr
Callyde Jr
BlesseD
AndryelBlanco
giowde
AndryelBlanco
NKKF
NKKF
FelipeSouza11
Magnatah
bruno700mb
darkrj
Magnatah
Ricardito
Magnatah
Magnatah
fantastic137
SamonBR
Callyde Jr
Fagner
Th2y
Wily
Shidote
SamonBR
ViniciusTKH
TioUV
MarcosSchultz
MarcosSchultz
MarcosSchultz
mateusschw
MayLeone
KurotamaXIII
Ploleo
RodriGO3477
PacienteZERO
Fagner
BlesseD
zhentox
MarcosSchultz
MarcosSchultz
Fagner
SauloeArthur
ProBrStalker
Callyde Jr
tautologias357
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Callyde Jr
bruno700mb
Callyde Jr
JulioWinchester
FlavinGiroflex
merike11
TioUV
Weslley
GattiMene
Magnatah
MarcosSchultz
TIKO
MarcosSchultz
MarcosSchultz
Fagner
Magnatah
Rangel Oblivion
MarcosSchultz
ProBrStalker
mateusschw
MarcosSchultz
MarcosSchultz
mateusschw
FlavinGiroflex
Th2y
darknecron
MarceloYBP
TIKO
poyser
pdsimulador
designshake
SamonBR
Ricardito
Fagner
Moskeiro
Moskeiro
CharlesWarrior02
samuelreidosjogos17091997
AndryelBlanco
NKKF
samuelreidosjogos17091997
Fagner
Wrench18
Lplucas
Hohenheim
brizaloka
JulioWinchester
lesgoy

[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 2: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 : 899
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 3: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 : 63076
REPUTAÇÃO : 2487
Idade : 24
Á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 8: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 : 899
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 2:49 pm

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

Masculino PONTOS : 63076
REPUTAÇÃO : 2487
Idade : 24
Á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 5: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 : 899
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 1: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 : 63076
REPUTAÇÃO : 2487
Idade : 24
Á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 7:41 pm

Muito obrigado

QueriaStarMorto
Avançado
Avançado

PONTOS : 899
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


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