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:
Ativar Animação ao colidir com BoxCollider
Unity 2018.2 | Como optimizar meu projeto?
Photon Pun2 - Error: NewScene Clean
Criar objeto FBX manualmente
}else{ nao funciona no unity alguem pode me ajuda????
Exemplo de UI com abas - utilizando toggles e toggle group.
OnTriggerEnter com erro?
Importar .unitypackage em tempo de execução
Pode monetizar meu jogo mobile na unity basica?
[DUVIDA]Steam
Como fazer objeto se mover dentro de um collider 2d ou dentro de um sprite?
Impossible to escape (JOGO) terro completo
Alguem me ajuda a resolver esse negocio plmds
Como fazer um objeto sumir e aparecer novamente em loop (ficar piscando) ?
"Balançar sprite"
OPORTUNIDADE DE FREELANCE
Como mostrar a distancia em km de um ponto a outro?
Game Multiplayer
Como colocar dano no inimigo? e vida no player?
Como salvar alterações de SetActive em GameObjects (UNITY)
QUAL JOGO VOCÊ GOSTARIA QUE FOSSE REFEITO?
Menu de Spawn
Continuar tocando som com o aparelho bloqueado
Build apk aab unity 2019.4
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Ofereço-me é diferente de formar equipes
[TUTORIAL] Unity 5 - Skid Marks (marcas de derrapagem)
COMO RESOLVO O ERRO DESSE SCRIPT
Trocar Personagem/Skin
Como funciona o drop de itens?
Como reduzir tamanho do .APK ?
como criar uma iluminação para um jogo com graficos low poly?
Simulador de policia [C#] [Jogo em andamento] [Procurando Equipe]
me ajudem, dem uma dica de como posso fazer um limitador para esse codigo
Realidade Virtual e Aumentada - onde tem?
interagir com os objetos somente se o mouse não estiver sobre o canvas
Sprites só é renderizado se diminuir o Size da camera
Alguém tem ideia de como posso fazer a movimentação do Lampião?
[RESOLVIDO] Mudar cor ?
[Dúvida] Toques na tela e UIs
[DUVIDA RAPIDA] SOBRE SCRIPTS
Unity celular - computador
Dúvida com botoes
Ajuda simples no trigger
preciso de ajuda
Como faço pra interagir com objeto ao olhar pra ele?
Busco alguem pra fazer algumas programações basicas (PAGO EM DINHEIRO)
Ativar animação ao se mover
[TUTORIAL] GameObject.FindWithTag ( Achar objetos na cena pelas Tags )
Colocar contagem regressiva
[TUTORIAL] Script de arma completo! [FREE]
Como faço pro carro só se mover quando eu engra no carro?
Como criar um cabo e realizar conexões
PLATAFORMA/COR ALEATORIA + AUMENTO DE VELOCIDADE
PRECISO DE UMA PESSOA QUE SAIBA MECHER COM ONLINE NO UNITY
Ajuda com Colisão na Camera
Como limitar o ângulo que um objeto pode atingir com Quaternion.LookRotation?
The freddy krueger's pie (Game)
Como programar animações de fade in e fade out para botão no Unity
Iniciar script sem anexá-lo a um GameObject
IDLE game tutorial, alguem?
Unity3D - Realistic Fps Prefab 1.44,1.45 - Sistema de Veículos - EVP5
nao consigo publicar um asset, me ajudem
Não Consigo salvar ao sair, se puderem ajudar
Duvida sobre animações
Efeito realista em textura
Salvar as auterações de um prefab em modo de jogo.
[TUTORIAL] Sistema de Suspenção a Ar para carros (WheelCollider)
Sistema de Escolher Frases no Dialogo
Como transformo a posição de um objeto em outra posição?
Como posso girar a câmera envolta do player com touch
[TUTORIAL] Salvar SCORE e substituir caso faça mais pontos.
Sistema de backup local "semi-automático".
[TUTORIAL] Sistema de FPS com Corpo
COMO MUDAR GETKEY WASD PARA GETBUTTON HORIZONTAL E VERTICAL ???
BLENDER SNAP COM PROBLEMA
Dúvida sobre o Aleatório
objeto voando
PlayerPrefab
movimentar a camera com o mouse estilo jogo RTS
[TUTORIAL] AI Enemy ( Jogos de terror )
Unity - Como eu desativo e ativo uma hierarquia ao apertar um botão?
Problema na iluminação do shader Diffuse
[TUTORIAL] Limitar casas decimais sem arredondar
Erros atualização de versão da Unity
Erro no SDK - unity
Arquivos em Nuvem
Como faz para salvar as escalas dos arquivos no TilePallets?
[RESOLVIDO] To precisando de ajuda em um script pra fazer uma malha dinamica
Sistema de teletransporte em Python
[____SUGESTÕES PARA O FÓRUM____]
[RESOLVIDO] Como consigo uma conexão local?
Problema em Saber Qual Objeto vai ser Spawnado
Procuro ROTEIRISTA
[RESOLVIDO] Colocar limite de cliques em button
Número Aleatório Unity C#
Comsegui terminar um jogo, Agradeço a todos
Ajuda com recursos do unity.
[RESOLVIDO] Dicas de Otimização
Ontem à(s) 9:52 pm
Ontem à(s) 7:10 pm
Ontem à(s) 10:56 am
Ontem à(s) 9:11 am
Ontem à(s) 9:01 am
Ontem à(s) 1:03 am
Ter Ago 11, 2020 11:29 pm
Ter Ago 11, 2020 11:24 pm
Ter Ago 11, 2020 11:12 pm
Ter Ago 11, 2020 9:21 pm
Ter Ago 11, 2020 5:36 pm
Ter Ago 11, 2020 5:24 pm
Ter Ago 11, 2020 4:20 pm
Ter Ago 11, 2020 11:19 am
Ter Ago 11, 2020 11:02 am
Ter Ago 11, 2020 8:46 am
Ter Ago 11, 2020 1:42 am
Seg Ago 10, 2020 10:44 pm
Seg Ago 10, 2020 4:54 pm
Seg Ago 10, 2020 4:43 pm
Seg Ago 10, 2020 12:29 am
Dom Ago 09, 2020 2:49 pm
Dom Ago 09, 2020 2:08 am
Dom Ago 09, 2020 2:04 am
Dom Ago 09, 2020 12:28 am
Dom Ago 09, 2020 12:27 am
Dom Ago 09, 2020 12:26 am
Sab Ago 08, 2020 2:29 pm
Sab Ago 08, 2020 2:09 pm
Sex Ago 07, 2020 5:15 pm
Qui Ago 06, 2020 5:00 pm
Qui Ago 06, 2020 8:03 am
Qui Ago 06, 2020 3:05 am
Qua Ago 05, 2020 8:39 pm
Qua Ago 05, 2020 5:44 pm
Qua Ago 05, 2020 11:14 am
Ter Ago 04, 2020 11:16 pm
Ter Ago 04, 2020 8:34 pm
Ter Ago 04, 2020 5:54 pm
Ter Ago 04, 2020 3:37 pm
Ter Ago 04, 2020 10:42 am
Ter Ago 04, 2020 10:33 am
Ter Ago 04, 2020 1:15 am
Seg Ago 03, 2020 9:28 pm
Seg Ago 03, 2020 8:32 pm
Seg Ago 03, 2020 8:28 pm
Seg Ago 03, 2020 7:38 pm
Seg Ago 03, 2020 3:41 pm
Seg Ago 03, 2020 9:39 am
Seg Ago 03, 2020 1:40 am
Dom Ago 02, 2020 5:53 pm
Dom Ago 02, 2020 5:44 pm
Dom Ago 02, 2020 2:28 pm
Dom Ago 02, 2020 1:14 pm
Dom Ago 02, 2020 12:57 pm
Dom Ago 02, 2020 4:40 am
Sab Ago 01, 2020 11:57 pm
Sab Ago 01, 2020 2:10 pm
Sab Ago 01, 2020 11:37 am
Sab Ago 01, 2020 8:31 am
Sab Ago 01, 2020 12:26 am
Sex Jul 31, 2020 9:02 pm
Sex Jul 31, 2020 3:58 pm
Qui Jul 30, 2020 7:18 pm
Qui Jul 30, 2020 4:54 pm
Qui Jul 30, 2020 10:55 am
Qui Jul 30, 2020 8:47 am
Qui Jul 30, 2020 4:42 am
Qua Jul 29, 2020 3:29 pm
Qua Jul 29, 2020 10:56 am
Qua Jul 29, 2020 12:30 am
Seg Jul 27, 2020 5:45 pm
Seg Jul 27, 2020 6:28 am
Dom Jul 26, 2020 7:15 pm
Dom Jul 26, 2020 5:53 pm
Dom Jul 26, 2020 4:33 pm
Dom Jul 26, 2020 4:10 pm
Dom Jul 26, 2020 4:02 am
Dom Jul 26, 2020 3:58 am
Dom Jul 26, 2020 3:58 am
Dom Jul 26, 2020 3:52 am
Dom Jul 26, 2020 3:48 am
Dom Jul 26, 2020 12:04 am
Sab Jul 25, 2020 11:46 pm
Sab Jul 25, 2020 11:38 pm
Sab Jul 25, 2020 11:02 pm
Sab Jul 25, 2020 10:27 pm
Sab Jul 25, 2020 10:26 pm
Sab Jul 25, 2020 10:09 pm
Sab Jul 25, 2020 10:06 pm
Sab Jul 25, 2020 9:50 pm
Sab Jul 25, 2020 8:03 pm
Sex Jul 24, 2020 11:51 pm
Sex Jul 24, 2020 5:45 pm
Sex Jul 24, 2020 3:04 pm
Sex Jul 24, 2020 7:03 am
Qui Jul 23, 2020 6:15 pm
Qui Jul 23, 2020 5:31 pm
Qui Jul 23, 2020 5:27 pm
rondon2014
Samuelostgamer
Elizeuvix
Evertonslv
poyser
fmflavio
speedluk
Evertonslv
poyser
diegopds
deloam
masterchiefgamerytb
Nick1010
Wily
maxwarnava
gtcmcsgo
speedluk
richerd
miguelleite07
JoelMJunior
hitmonlee
TIKO
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Weslley
Weslley
speedluk
numb123
JulioWinchester
Giwn
pietro1524
Callyde Jr
JulioWinchester
TioUV
LúcioHenrique098
Callyde Jr
poyser
NKKF
Kakaroto222
garrito
CShar
Magnatah
Magnatah
MayLeone
BoraAprender15
NKKF
JohnRambo
maxwellvale
maxwellvale
CShar
NKKF
SeTk
JulioWinchester
BigCouve
Callyde Jr
TheusReis
BRGC
speedluk
Samuelostgamer
Yuri Heinz
joaoguil3
DhanielBrandão2
Édipo
Antônio T
garrito
EricknhYT
BigCouve
g2013santtos@gmail.com
raphaelperez
fabricadegame
SamonBR
CShar
IOOI
pdsimulador
iToddy
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
VaiPraLá123
Magnatah
JoelMJunior
KurotamaXIII
MarcosSchultz
MarcosSchultz
diegopds
MarcosSchultz
MarcosSchultz
NinjalaranjaTV
CShar
Ele paiva
Agoraaae3432
CShar
Yuri Heinz
sabbath
VaiPraLá123

[RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Ir em baixo

Resolvido [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Mensagem por Hamassfall em Qua Ago 28, 2019 9:35 am

Eu estava tentando fazer o inimigo virar para onde eu estou em relação a ele no eixo x, mas quando eu chego perto dele ele começa a flipar sem parar.
Quando eu olho no Inspector ele fala que a rotação do inimigo vai para 180, depois vai para 0 e depois volta para 180 e continua assim sem parar.

Aqui meu código:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


public class Enemy : MonoBehaviour
{

    public GameObject enemyBullet;
    public GameObject player;
    public float minimunDistance = 4f;
    public int enemyHealth = 100;
    public GameObject firePoint2;
    public float move;
    Rigidbody2D rb;
    private bool collide ;
    private float waitingTime = 0.5f;
    public bool canShoot;

    void Start()
    {
        canShoot = true;
        rb = GetComponent<Rigidbody2D>();
    }

    void Update()
    {
        rb.velocity = new Vector2(move, rb.velocity.y);
        float playerDistance = Vector2.Distance(transform.position, player.transform.position);
        if (playerDistance < minimunDistance && Mathf.Abs(transform.position.y - player.transform.position.y) < 1 && canShoot)
        {
            Shoot();
            canShoot = false;
            StartCoroutine("WaitToShoot");
            move = 0;

            if (player.transform.position.x > transform.position.x)
            {
                transform.Rotate(0f, 180f, 0f);
            }
            else if (player.transform.position.x < transform.position.x)
            {
                transform.Rotate(0f, 180f, 0f);
            }
        }

        if (collide)
        {
            Flip();
        }
    }

    IEnumerator WaitToShoot()
    {
        yield return new WaitForSeconds(waitingTime);
        canShoot = true;
    }

    public void TakeDamage(int Damage)
    {
        enemyHealth -= Damage;
        if (enemyHealth <= 0)
        {
            Destroy(gameObject);
        }
    }

    void Shoot()
    {
        Instantiate(enemyBullet, firePoint2.transform.position, transform.rotation);
    }

    void Flip()
    {
        transform.Rotate(0f,180f,0f);
        move *= -1f;
        collide = false;
    }

    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Wall")
        {
            collide = true;
        }
    }
}

Hamassfall
Avançado
Avançado

PONTOS : 504
REPUTAÇÃO : 5
Respeito as regras : [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Mensagem por lesgoy em Qui Ago 29, 2019 12:14 am

Apesar de não entender muito desses codigos chiques vou tentar ajudar kkk

Olha essa Linha 
[list=linenums]
[*]if (player.transform.position.x > transform.position.x)

[*]            {

[*]                transform.Rotate(0f, 180f, 0f);

[*]            }

[*]            else if (player.transform.position.x < transform.position.x)

[*]            {

[*]                transform.Rotate(0f, 180f, 0f);

[*]            }

[/list]

Primeira coisa, acredito que não é necessario esse elseIf. Por que se o if verifica oque esta dentro (Se o personagem ta perto do inimigo) um else faria tudo que ta fora executar o contrario.
Ex:
Se tiver perto Olha pra ele
Senão não olha.
Começa por ai e tenta executar.
Ok, como ele ta fzr isso direto acredito que seu script ta precisando de uma pausa.
Como eu ja disse eu não entendo os codigos chiques e provavelmente existe um comando bobo que vai fzr oq eu vou falar.

Como eu resolveria :

Criaria uma variavel do tipo int, chamada stop.
Na função start ela receberia 0.

Quando o personagem chegar perto do inimigo e ele virar ela recebe 1.
[list=linenums]
[*]if (player.transform.position.x > transform.position.x)

[*]            {

[*] if(stop == 0)

[*] {

[*]                transform.Rotate(0f, 180f, 0f);

[*] stop =1;

[*] }

[*]            }

[*]            else if (player.transform.position.x < transform.position.x)

[*]            {

[*]               

[*] if(stop == 1)

[*] {

[*]                transform.Rotate(0f, 180f, 0f);

[*] stop =0;

[*] }

[*]            }

[/list]


Oque eu fiz :

Quando a variavel esta valendo 0, significa que o personagem pode virar e então se ele tiver no range do inimigo ele vai virar.
Mas ele só vai fzr isso uma vez pq após ele virar a variavel recebe 1 e ele não vira mais.
Quando ele sai do range ele desvira e a variavel recebe 0 (Impedindo que ele vire denovo) e claro, ele só vai ter permissão para desvirar quando a variavel receber 1 novamente.

Em fim, se souber uma maneira chique fique a vontade para usa-la.
O problema é que ele ta recebendo 180 toda hora e ai fica :
0 > 180 > 0 > 180, pq não tem um pause entende?
Tudo que vc precisa fzr é criar algo para que ele gire somente uma vez.
Espero que tenha ajudado .

lesgoy
Mestre
Mestre

PONTOS : 1903
REPUTAÇÃO : 46
Respeito as regras : [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Mensagem por lesgoy em Qui Ago 29, 2019 12:15 am

Esqueci de corrigir o else if kkk 
É só no lugar de else if deixar só else.
Código:
if ( Condição ){

}else
{

}

lesgoy
Mestre
Mestre

PONTOS : 1903
REPUTAÇÃO : 46
Respeito as regras : [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Mensagem por lesgoy em Qui Ago 29, 2019 12:16 am

PS : Eu coloquei o codigo na caixinha script mas não sei pq da primeira vez bugou e n foi

lesgoy
Mestre
Mestre

PONTOS : 1903
REPUTAÇÃO : 46
Respeito as regras : [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto WvDYdlf

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto

Mensagem por Hamassfall em Qui Ago 29, 2019 9:06 am

@lesgoy escreveu:Apesar de não entender muito desses codigos chiques vou tentar ajudar kkk

Olha essa Linha 
[list=linenums]
[*]if (player.transform.position.x > transform.position.x)

[*]            {

[*]                transform.Rotate(0f, 180f, 0f);

[*]            }

[*]            else if (player.transform.position.x < transform.position.x)

[*]            {

[*]                transform.Rotate(0f, 180f, 0f);

[*]            }

[/list]

Primeira coisa, acredito que não é necessario esse elseIf. Por que se o if verifica oque esta dentro (Se o personagem ta perto do inimigo) um else faria tudo que ta fora executar o contrario.
Ex:
Se tiver perto Olha pra ele
Senão não olha.
Começa por ai e tenta executar.
Ok, como ele ta fzr isso direto acredito que seu script ta precisando de uma pausa.
Como eu ja disse eu não entendo os codigos chiques e provavelmente existe um comando bobo que vai fzr oq eu vou falar.

Como eu resolveria :

Criaria uma variavel do tipo int, chamada stop.
Na função start ela receberia 0.

Quando o personagem chegar perto do inimigo e ele virar ela recebe 1.
[list=linenums]
[*]if (player.transform.position.x > transform.position.x)

[*]            {

[*]if(stop == 0)

[*]{

[*]                transform.Rotate(0f, 180f, 0f);

[*]stop =1;

[*]}

[*]            }

[*]            else if (player.transform.position.x < transform.position.x)

[*]            {

[*]               

[*]if(stop == 1)

[*]{

[*]                transform.Rotate(0f, 180f, 0f);

[*]stop =0;

[*]}

[*]            }

[/list]


Oque eu fiz :

Quando a variavel esta valendo 0, significa que o personagem pode virar e então se ele tiver no range do inimigo ele vai virar.
Mas ele só vai fzr isso uma vez pq após ele virar a variavel recebe 1 e ele não vira mais.
Quando ele sai do range ele desvira e a variavel recebe 0 (Impedindo que ele vire denovo) e claro, ele só vai ter permissão para desvirar quando a variavel receber 1 novamente.

Em fim, se souber uma maneira chique fique a vontade para usa-la.
O problema é que ele ta recebendo 180 toda hora e ai fica :
0 > 180 > 0 > 180, pq não tem um pause entende?
Tudo que vc precisa fzr é criar algo para que ele gire somente uma vez.
Espero que tenha ajudado .
Era isso mesmo, funcionou certinho aqui.
Eu também não sei se existe um comando para fazer isso mas por enquanto esse vai servir kkkkkkkk

Hamassfall
Avançado
Avançado

PONTOS : 504
REPUTAÇÃO : 5
Respeito as regras : [RESOLVIDO] Fazer o inimigo virar para o lado que você está quando você chega perto 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