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:
CASA L MODELO 3D FREE FIRE
Opinião Sobre Meu jogo
Sugestões de Site pra Baixar Música e Efeitos Sonoros de Graça
Jogo de Tabuleiro Online ou Offline?
ALGUEM PRECISANDO DE MODELADOR NA EQUIPE?
Nao consigo fazer criar um coliso com o meu personagem com animaçao
PREECISO DE ALGUE QUE SAIBA MECHER COM O PHOTON
Molodias sem direitos autorais (Free)
Trailer do meu jogo
movemetacao em circulo na unity
TRIGGER EM COLLIDER
Preciso De Dicas Sobre Publicar Na Play Store
Como parar de produzir animação quando o jogador colidir?
problema com o standard assets
Lista de Menu Dinâmica
reconhecimento de fala simples
Versão desatualizado do game no poder jogar PHOTON PUN
Script se referenciando a outro componente que não esta anexado a ele?
Erro para ler banco de dados com C#
Como ativar o script só pra quem ter a tag "Player"
[Projeto] Until Lights Out 2021/2022
Restringir a Rotação de um objeto até um certo ângulo!
Enemigos atravesaveis
[JOGO] A Passagem Disponível Para Pc/Android.
Unity - Erro ao rodar o VídeoPlayer
ALGUEM PRECISNDO DE MODELADOR NA EQUIPE?
ERRO POR CONTA DE REFERÊNCIAS APÓS DESTRUIR GAMEOBJECT
Coloca 2 script juntos iria ferra a otimização ?
Código para drop de itens conforme raridade (probabilidade)
Meu jogo na Playstore kkkkk
Otimizando grandes mapas - (Shadows,Lights,GI ...)
Camera se move sozinha quando uso o controle.
Unity - Clique do Mouse
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Como criar jogo de cartas
Macro com Unity
Shader Graph não funciona direito em RunTime, mas funciona na Scene
Editar animação 3d dentro da unity
[RESOLVIDO] Limitar a rotação da câmera entre dois ângulos
Ajuda para recursos do meu jogo
Posso usar o sistema de marcas de derrapagem como base para outro sistema?
[TUTORIAL] Systema Simples de Quest
RigidBody com Box Collider Travando na Aresta de um Box Collider.
animation trigger não funciona direito
Fazer o player automaticamente ir para um sitio quando não tem balas
Tocar som diferentes com bools
problema com velocidade da patrulha
Gerar APK
Performance - texture 'lod' (MIPmap) DDS
como fazer um obejto fica virado para camera???????
[RESOLVIDO] Cena não é lida...
Meu jogo disponivel pra pré compra na steam
Meus jogos podem dar uma olhada
Preciso de uma mão 3d c4d, para unity
Trocar de cena ao matar inimigo
Animação com frames travados (igual Dragon Ball Fighterz)
Unity - Scene muito pesada. Como otimizar?
Como criar área para movimentar a câmera (MOBILE)
Tranformar um numero baixo em uma pontuação alta
[TUTORIAL] BeatMapping com Unity
[RESOLVIDO] Como criar um botãoUI que liga e desliga uma lista de objetos?
selecionar area pelo touch
Maximizar view da cam
Alguem Pode me ajudar com A Movimentação ? Unity scripts
Alguém q saiba mecher com Particle System? pago por particula!
AJUDA COM MULTIPLAYER
Efeito FADE IN e OUT por meio de trigger
Divulgação do meu Livro de Fantasia Medieval: Skilled World
Anjos Lamentadores Soctor Who
Tem como fazer o inimigo andar até dar de cara com o player?
Unity drag e collider
Suavizar movimento de câmera da introdução
Ajuda com Raycast position de Prefabs (Photon + unity)
[Projeto] Jogo Ambientado no Brasil para Android
Script de tiro para o photon 2
Mudar qualidade das texturas por código?
[RESOLVIDO] Unity - Imagem no formato de um triângulo?
Tirar foto e exportar pro jogo
Gráficos estilo Genshin
level system problema
Como calcular distância entre dois pontos
Posicao do objeto diferente do setado no codigo
Sistema de pulo 3D
Procuro programador Unity para jogo 2D
Pessoal saiu a versão de testes do meu novo jogo, o Sanatório Macabro
Cinemachine - trocar de camera usando uma tecla e mouse 'lockScreen'
Sistema completo de nivel com XP + PayTime
Limitar arrays e fazer sortear um valor apenas uma vez
Como faço para variável voltar para o valor inicial
Duvida com getAxis
Fazer um detetive para sair apenas 1 vez o resultado do sorteio
Jogos NTFs
Salvar variável temporária com PlayerPrefs!?
Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
Bug com modelo ficando invisível
Erro em sistema de dialogo...
Terreno Procedural
sistema de estamina,vida,fome e sede
Ontem à(s) 3:40 pm
Ontem à(s) 9:17 am
Qui Jan 27, 2022 10:11 pm
Qui Jan 27, 2022 5:31 pm
Qua Jan 26, 2022 8:51 pm
Qua Jan 26, 2022 8:02 pm
Qua Jan 26, 2022 2:22 am
Seg Jan 24, 2022 7:23 pm
Seg Jan 24, 2022 6:47 pm
Dom Jan 23, 2022 10:28 pm
Qua Jan 19, 2022 6:14 pm
Ter Jan 18, 2022 10:45 am
Seg Jan 17, 2022 10:36 pm
Seg Jan 17, 2022 7:48 pm
Dom Jan 16, 2022 10:31 pm
Dom Jan 16, 2022 10:01 pm
Dom Jan 16, 2022 7:17 pm
Dom Jan 16, 2022 6:56 pm
Sab Jan 15, 2022 10:09 am
Sex Jan 14, 2022 5:01 pm
Qua Jan 12, 2022 11:23 pm
Qua Jan 12, 2022 6:52 pm
Qua Jan 12, 2022 5:28 pm
Qua Jan 12, 2022 4:15 pm
Qua Jan 12, 2022 12:08 am
Ter Jan 11, 2022 6:11 pm
Ter Jan 11, 2022 6:08 pm
Ter Jan 11, 2022 11:43 am
Seg Jan 10, 2022 6:08 pm
Seg Jan 10, 2022 2:05 pm
Seg Jan 10, 2022 10:41 am
Dom Jan 09, 2022 3:48 pm
Sab Jan 08, 2022 2:58 pm
Sex Jan 07, 2022 11:06 pm
Qui Jan 06, 2022 7:04 pm
Qua Jan 05, 2022 6:13 pm
Qua Jan 05, 2022 3:19 pm
Ter Jan 04, 2022 5:51 pm
Ter Jan 04, 2022 5:41 pm
Seg Jan 03, 2022 6:07 pm
Dom Jan 02, 2022 3:46 pm
Sab Jan 01, 2022 8:10 pm
Sab Jan 01, 2022 9:55 am
Qui Dez 30, 2021 4:22 pm
Ter Dez 28, 2021 5:22 pm
Ter Dez 28, 2021 5:05 pm
Sab Dez 25, 2021 6:22 pm
Sab Dez 25, 2021 2:19 pm
Sab Dez 25, 2021 4:28 am
Sex Dez 24, 2021 11:15 pm
Qui Dez 23, 2021 11:05 am
Qui Dez 23, 2021 8:11 am
Seg Dez 20, 2021 2:54 pm
Seg Dez 20, 2021 2:09 pm
Dom Dez 19, 2021 1:33 pm
Sab Dez 18, 2021 6:46 pm
Sab Dez 18, 2021 4:37 pm
Sex Dez 17, 2021 8:52 pm
Sex Dez 17, 2021 1:42 am
Qui Dez 16, 2021 1:36 pm
Qua Dez 15, 2021 12:54 pm
Ter Dez 14, 2021 1:36 pm
Seg Dez 13, 2021 8:14 pm
Seg Dez 13, 2021 7:49 pm
Seg Dez 13, 2021 7:14 pm
Dom Dez 12, 2021 8:25 pm
Dom Dez 12, 2021 6:00 pm
Dom Dez 12, 2021 10:07 am
Sab Dez 11, 2021 11:56 pm
Sex Dez 10, 2021 8:33 pm
Qua Dez 08, 2021 11:37 pm
Ter Dez 07, 2021 7:21 pm
Ter Dez 07, 2021 7:17 pm
Seg Dez 06, 2021 10:06 pm
Seg Dez 06, 2021 2:18 pm
Seg Dez 06, 2021 6:44 am
Dom Dez 05, 2021 2:27 pm
Dom Dez 05, 2021 5:11 am
Sab Dez 04, 2021 9:02 pm
Qui Dez 02, 2021 12:00 pm
Ter Nov 30, 2021 3:52 pm
Ter Nov 30, 2021 12:14 pm
Seg Nov 29, 2021 5:18 pm
Seg Nov 29, 2021 5:17 pm
Seg Nov 29, 2021 1:17 pm
Dom Nov 28, 2021 11:52 am
Dom Nov 28, 2021 1:30 am
Sab Nov 27, 2021 4:57 am
Sex Nov 26, 2021 5:53 pm
Sex Nov 26, 2021 12:16 pm
Qui Nov 25, 2021 6:15 pm
Qui Nov 25, 2021 3:31 pm
Qua Nov 24, 2021 2:01 am
Ter Nov 23, 2021 5:11 pm
Ter Nov 23, 2021 3:48 pm
Ter Nov 23, 2021 1:12 pm
Ter Nov 23, 2021 12:38 pm
Seg Nov 22, 2021 3:20 pm
Seg Nov 22, 2021 2:29 am
SeTk
richerd
WLCS22
WLCS22
EricknhYT
BEJAOGODAO
SeTk
Tomas Turbando
JulioWinchester
locatek
RAPOzoro
Crash Psycho
Ren Allen
dutrabr100
edfisicaweb
Édipo
EricknhYT
ProBrStalker
fernando.OVS
Franttyck
BlesseD
gabrielgame6772
dutrabr100
Crash Psycho
WLCS22
dutrabr100
dutrabr100
GustavoPeky2
Nimue
verme1311
jeronimo Collares
NoctisDregon
WLCS22
Crash Psycho
dutrabr100
MayLeone
dutrabr100
dutrabr100
cyborggp
N.P.C
dutrabr100
ronigleydson
hendrick22
dutrabr100
PauloFR
PauloFR
MarcosSchultz
eduardonog30
WLCS22
SteveRogers
MarcosSchultz
NoctisDregon
diegopds
Gamergame
GustavoPeky2
Gamergame
juraulh
WLCS22
classicandsimple
SteveRogers
MayLeone
verme1311
locatek
MayLeone
MayLeone
M4x
Thedarkaay
eduardonog30
Rangel Oblivion
SteveRogers
Magnatah
NKKF
NKKF
junio132sj
MRX
junio132sj
MayLeone
WLCS22
MayLeone
Gabriel M
Valakinhas
Xavier
JãoArts
JãoArts
joaozinpedrin
Patrick
jeronimo Collares
M4x
EricknhYT
Charlesoff
capim22
EricknhYT
artplayer
M4x
M4x
Charlesoff
NoctisDregon
SgtMatuto
Pkneves

Como pego uma posição dentro de um Collider e acesso ela?

2 participantes

Ir para baixo

DÚVIDA Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Qui Ago 19, 2021 4:43 pm

Olá pessoal, tudo bem?

Não sei se é a melhor maneira de se fazer isto, mas estou criando um assistente para tiro.

Criei um Box Collider no meu player e sempre que o Inimigo atravessar este Box, o collider pega a posição de onde ele está, porém como faço parar o tiro ir em direção a ela?

Da maneira que estou fazendo agora, a arma está pegando a posição do Vector3 mas está atirando em um lugar aleatório no mundo do jogo e não na posição do Box.

Por enquanto o Script está assim: 
Código:
private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Carro"))
        {
        GameObject gHit = other.gameObject;
        Transform tHit = gHit.transform;
        Enemyposition = new Vector3(tHit.position.x,
                                    tHit.position.y,
                                    tHit.position.z
                                    );
        Debug.Log(Enemyposition);
        }
    }

    public void Shoot()
    {

        AT.audioTiros.Play();

        
        Ray ray = new Ray(attackPoint.transform.position, Enemyposition);
        RaycastHit hit;
        Vector3 targetPoint;
        if(Physics.Raycast(attackPoint.transform.position, Enemyposition, out hit)){          
            targetPoint = hit.point;
        } else {
            targetPoint = ray.GetPoint(180);
        }

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por Fagner Qui Ago 19, 2021 6:01 pm

Não seria mais simples manter registro dos inimigos, usando uma lista ou array?
Com isso você não dependeria do inimigo passar no colisor e nem precisaria encher a cena com colisores...
Isso é pro jogo estilo Rocket League?
mantendo o registro dos jogadores, você pode por exemplo calcular o ângulo pra cada um deles, e com base na direção do joystick, pegar o inimigo com o ângulo mais próximo do que você tentou mirar.
Sobre o raycast, é desnecessário, imagina que você travou a mira no inimigo x, se você disparar um raycast na posição dele é meio óbvio que vai acertar, então dá pra poupar uns ciclos de cpu e só dar dano usando a própria referencia que você pegou usando o ângulo.
Raycast só é válido se o player tiver que mirar, mas se ainda quiser insistir no sistema atual, basta alterar essa linha
Código:
Ray ray = new Ray(attackPoint.transform.position, Enemyposition);

mas fazendo new Ray((Enemyposition - attackPoint.transform.position).normalized);
aí sim você vai ter uma direção.

E aqui:
Código:
if(Physics.Raycast(attackPoint.transform.position, Enemyposition, out hit)){

Você vai passar o ray que criou mais um valor máximo de distancia, e o out hit
Fagner
Fagner
Moderador

Masculino PONTOS : 3409
REPUTAÇÃO : 661
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Sex Ago 20, 2021 9:43 am

Eai Fagner, tudo bom?

Cara, é esse jogo mesmo, acabei tendo alguns problemas no trabalho nos últimos meses e tive que dar uma parada no projeto e voltei a algumas semanas atrás.
Cara, sobre esta maneira que você indicou de fazer a mira, você teria algum arquivo em blog ou fórum, etc que me ajudasse a fazer esta mira da maneira que você indicou? A minha ideia é que a mira do carro se conecte-se minimamente ao inimigo, apenas quando ele estiver em uma área pequena em frente ao Player. Como uma assistência de mira mesmo. 

Vou pesquisar também sobre esta mira da maneira que você indicou. 

Mais uma vez, muito obrigado pela ajuda de sempre.

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por Fagner Sex Ago 20, 2021 10:45 am

Isso aqui deve servir de base pra ti:

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

public class AimAssist : MonoBehaviour
{
    public List<Transform> inimigos;
    public float lockAngulo = 10;
    public Transform target;

    private void Update()
    {
        if (ValidarAssist())
        {
            //Já encontrei o inimigo a minha frente (target), ele está no angulo limite e posso atirar nele;
            //Variável target contem a referencia do inimigo que eu posso atirar;
        }
        else
        {
            //Não posso atirar;
        }
    }

    private bool ValidarAssist()
    {
        float anguloRetorno;
        Transform inimigoAtual = EncontrarInimigo(out anguloRetorno);//Aqui recebo o transform do inimigo com menor angulo, e no out vem o valor que calculei no outro metodo, evita um novo calculo :)
       
        if (anguloRetorno < lockAngulo)
        {
            if (inimigoAtual != null)
            {
                target = inimigoAtual;
            }
        }
        else
        {
            target = null;
        }

        return anguloRetorno < lockAngulo; //Se o angulo atual for menor que o limite, posso lockar no inimigo;
    }

    private Transform EncontrarInimigo(out float anguloRetorno) //anguloRetorno recebe o melhor angulo e passa pro metodo que chamou o Encontrar Inimigo.
    {
        float melhorAngulo = float.MaxValue; //Inicia com o valor maximo
        int indiceInimigoSelecionado = -1;

        for (int i = 0; i < inimigos.Count; i++)
        {
            float angulo = Vector3.Angle(transform.forward, (inimigos[i].position - transform.position).normalized); //Angulo entre a frente do carro do jogador e a direcao pro inimigo (i)

            if (angulo < melhorAngulo) //Se o angulo do inimigo atual for menor que o valor armazenado, salvo o novo valor e guardo o indice desse inimigo;
            {
                melhorAngulo = angulo;
                indiceInimigoSelecionado = i;               
            }
        }

        anguloRetorno = melhorAngulo;

        if (indiceInimigoSelecionado != -1) //Apenas pra não dar erro, caso não tenha mais nenhum inimigo vivo.
        {
            return inimigos[indiceInimigoSelecionado];
        }
        else
        {
            return null;
        }
    }

    #region Debug

    private void OnDrawGizmos()
    {
        if (target != null)
        {
            Gizmos.DrawLine(target.position, transform.position);
        }

        //Desenha os limites do angulo do Assist
        Quaternion rot = Quaternion.Euler(0, lockAngulo, 0);
        Gizmos.DrawLine(transform.position, rot * transform.forward * 20);
        rot = Quaternion.Euler(0, -lockAngulo, 0);
        Gizmos.DrawLine(transform.position, rot * transform.forward * 20);
    }

    #endregion
}
Fagner
Fagner
Moderador

Masculino PONTOS : 3409
REPUTAÇÃO : 661
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Sex Ago 20, 2021 2:17 pm

Fagner muito obrigado cara. Tu é o melhor. rsrs

Eu só estou dando uma estudada em como implementar este sistema, retirar o Ray como você indicou e acessar os Players instanciados nesta List de inimigos. Mas tu já me deu um excelente caminho.

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Seg Ago 23, 2021 11:23 am

Fagner, desculpa mas só queria perturbar você com mais um detalhe. 

No Código você criou tem uma lista de inimigos no início correto. Eu estava tendo um pouquinho de dificuldade de entender a implementação deste código, então peguei este tutorial  que é bem parecido com o código que você passou, fui comparando cada passa para não só usar o código mas também entender como ele funciona. 

Mas estou com uma dúvida em relação ao seu List no início.

Vamos lá, por enquanto no meu game os Carros dos jogadores são instanciados, por enquanto são apenas 4 player, todos os carros estão usando a TAG "Carro" então, ao ser instanciados ele criam uma lista com a Tag correto? Ficando Carro[0], Carro[1], Carro[2], Carro[3].

Além disso, fiz um mecanismo para passar uma Layer para cada Carro ao ser instânciado. Ficando Player 1, Player 2, Player 3 e Player 4.

Pela List que você passou no seu código, como eu consigo fazer com que este código pegue todos os carros que foram instanciados, e use eles como alvo? (Menos o carro pertencente a arma que esta com ele.) 

Quando eu faço em jogo, se eu pegar o carro e colocar no componente correspondente ele passa a seguir, mas ainda não sei como fazer isso automaticamente.

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por Fagner Seg Ago 23, 2021 11:34 am

Ainda está usando o Mirror?
Se sim, basta preencher a lista na OnStartAuthority();
Esse método só é chamado no objeto que você tem autoridade, no caso, apenas seu veiculo.

Também dá pra fazer assim:
Código:
using System.Collections.Generic;
using UnityEngine;

public class AimAssist : MonoBehaviour
{
    public List<Transform> inimigos;

    private void Start()
    {
        Carro meuCarro = GetComponent<Carro>();//PEgo o carro em que esse script está

        Carro[] carros = FindObjectsOfType<Carro>(); //Pego todos os carros na cena;

        for (int i = 0; i < carros.Length; i++)//Percorro todos os carros, se não for o meu, adiciono à lista.
        {
            if (carros[i] != meuCarro)
            {
                inimigos.Add(carros[i].transform);
            }
        }
    }
}

Eu criei o array de transform, mas talvez seja mais conveniente criar o array usando o script do veiculo como tipo, dessa forma você ainda tem acesso ao transform, mas facilita caso queira acessar algum atributo do veiculo, como a vida, etc.
Afinal você não vai querer continuar lockando a mira num carro que já morreu.

#edit:
Não lembrei que inimigos era uma lista, atualizei o code.
Fagner
Fagner
Moderador

Masculino PONTOS : 3409
REPUTAÇÃO : 661
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Seg Ago 23, 2021 12:08 pm

Pior que não cara, rsrsrs

Na verdade eu quero e pretendo ainda voltar nisso, mas eu sou muito ruim no básico na programação cara, estava me sentindo dando um passo muito maior do que minhas pernas pensando em modo online no jogo agora, sabe? 

Mas eu ainda estou tentando fazer um protótipo jogável para decidir o que fazer depois disso. Como eu te falei, eu fiquei um bom tempo se mexer no projeto por causa do trabalho e voltei a pouco. 

É isso cara, ainda estou meio na dúvida do que fazer. O que eu quero de fato é terminar esse protótipo e depois decidir se eu abandono ou sigo em frente. De qualquer maneira, até aqui, todo esse estudo foi muito bom pois aprendi muito em relação a modelagem 3D para jogos.

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Como pego uma posição dentro de um Collider e acesso ela?

Mensagem por RenatoBarreto Seg Ago 23, 2021 12:17 pm

Eu tinha mandado a resposta antes de você editar. rs

Cara, mais uma vez muito obrigado, tu é o melhor rsrsrs.

Pior que vendo o código parece tudo tão fácil, é impressionante. 

Vlw mesmo.

RenatoBarreto
Iniciante
Iniciante

PONTOS : 362
REPUTAÇÃO : 5
Idade : 30
Respeito as regras : Como pego uma posição dentro de um Collider e acesso ela? WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste fórum
Você não pode responder aos tópicos