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 Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Meu script de ser morto atropelado não funciona
Unity não reconhece meu celular
Terminei o meu jogo, mas algo deu errado.
Props Animations Asset
[ASSET] Facilitação de controle de objetos
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Problema em listar salas
Ranking com nome
Novo jogo - Stackx
Mudar de scene multiplayer?
Segurança no Unity
Sistema de Dialogs + Assets
Tem um modo facil para esperar tanto tempo e ocorrer uma açao?
[TUTORIAL] Entrar no carro estilo GTA
[RESOLVIDO] Tem como melhorar a colisao? os objetos entram nos outros, caem do chao ,etc..
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
DÚVIDA RECRIAR EFEITO NA UNITY
Me ofereço como escritor
Como adicionar uma força oposta a colisão no rigidbody?
Ajuda com script
[Dúvida]Erro error CS1525: Unexpected symbol 'u' em script
[Resolvido] É possível usar a unity com outros programas ? (config do pc na dúvida ;-; )
Dano no inimigo
[Dúvida]Erro "UnityEngine.AI.NavMeshAgent.Stop()' is obsolete" como resolver ?
[Dúvida]Erro "Building to the assets folder is not allowed" ao tentar fazer build
[Equipe]Preciso de ajuda de um programador
CAMERA ENTRANDO NA PAREDE
como posso fazer um corpo perder a animação
Teste De Multiplayer
Como adicionar uma força oposta a colisão no rigidbody?
Usar o unity sem internet
Cenário jogo Endless Running
Photon Unity como funcina?
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
UM FANTASMA APARECEU NO MEU JOGO.
Como mudar cor do botao UI
[TUTORIAL] FPSController nadar e mergulhar, junto com efeito submerso
Como sincronizar objetos do client para o host
Em breve EDU_animal-controle
Preciso de level designers com conhecimento avançado no Blender
[TUTORIAL] Como criar um HUD MULTIPLAYER personalizavel
[Duvida] Script pegar itens
Um processador de 2 nucleos versus um de 8 nucleos tem diferença na Unity?
SALVAR JOGO AUTOMATICAMENTE
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Como faço para deixar o objeto transparente ao passar atraz?
Shader Standart - Fade . Fica transparente / Bugado (Paredes Semi-Transparentes)
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Existe Alguma VOID que atualize menos que a update
Movimento dos seios e cabelo
[TUTORIAL] Barra de VIDA / HP contínua
[Modelo]Modelo Com osso[Modelo]
[TUTORIAL] Mensagem aparecer na tela conforme a distância do jogador (Unity 5)
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Não aparece os eixos na animação
Tutorial de Achar coisas no projeto por script e poder setalas nos scripts
Da para fazer anti-hack com o photon??
Como achar um item no projeto ?
Será que um dia,vai existir uma versão em PT-BR da unity?
Movimentação igual ao do battlerite
Existe um limite da quantidade de scripts que você poder fazer na unity?
aVork - Física realista para veículos
Script continua funcionando mesmo depois de desabilitado
procurar jogador por nome da string
[FPSController]Verificar a velocidade de um rigidbody
Erro com script de inventario.
BoxCollidernão acompanha Animação
Mudar o SetActive ao clicar em um GameObject.
[RESOLVIDO]Multiplayer Life?
Sistema de jogo interativo
Programador de inventario e craft.
RigidBody2D not found?
Passar de estado no meio da animação
como mudar as distancias dos lodGrup por script?
[BUG] Laucher da unity aparece algumas pastas!
Erro de script de lobby photon.
Como achar um item no projeto ?
Sistema de troca de equipamento
Tem como fazer imagens andando pela tela?
Impulso com Swipe
Sistema de telefone
audiosource minima distancia e maxima distancia nao funciona
[MODELO]--ARMA--[3D MODEL]
Metodos/comandos/referencia desaparecem.
Sistema de dia e noite bugando outras coisas quando fica anoite
Como faço fontes novas para letras na unity?
duvida WayPoints (ou qualquer outra coisa que me ajude)
face do objeto ficando invisivel na unity.
Instanciando GameObject filho
Como faço para dar break através de um loop de explosões, jogo estilo bomberman.
Varios Destinos SetDestination
Coleta de Madeiras
Script Simples
[TUTORIAL] Unity 5 - Como utilizar o Animator
[Demonstração] Jogo simples em desenvolvimento.
Como saber se uma animação esta tocando ou se já acabou de tocar.
Como arrastar objetos com o dedo?
PAGO POR TUTORIAIS EM VIDEO ALGUÉM INTERESSADO??
Como fazer nao dar erro ao nao achar a tag do player?
Hoje à(s) 5:45 pm
Hoje à(s) 5:35 pm
Hoje à(s) 5:10 pm
Hoje à(s) 4:48 pm
Hoje à(s) 4:43 pm
Hoje à(s) 4:20 pm
Hoje à(s) 3:20 pm
Hoje à(s) 2:01 pm
Hoje à(s) 11:46 am
Hoje à(s) 9:29 am
Hoje à(s) 8:33 am
Hoje à(s) 7:13 am
Hoje à(s) 12:40 am
Hoje à(s) 12:31 am
Ontem à(s) 11:18 pm
Ontem à(s) 11:12 pm
Ontem à(s) 10:48 pm
Ontem à(s) 10:47 pm
Ontem à(s) 10:46 pm
Ontem à(s) 10:20 pm
Ontem à(s) 10:15 pm
Ontem à(s) 10:09 pm
Ontem à(s) 9:52 pm
Ontem à(s) 8:13 pm
Ontem à(s) 8:10 pm
Ontem à(s) 8:07 pm
Ontem à(s) 7:56 pm
Ontem à(s) 5:39 pm
Ontem à(s) 5:21 pm
Ontem à(s) 3:33 pm
Ontem à(s) 2:56 pm
Ontem à(s) 1:37 pm
Ontem à(s) 1:20 pm
Ontem à(s) 11:26 am
Ontem à(s) 11:24 am
Qua Nov 15, 2017 9:32 pm
Qua Nov 15, 2017 9:00 pm
Qua Nov 15, 2017 7:05 pm
Qua Nov 15, 2017 6:05 pm
Qua Nov 15, 2017 2:09 pm
Qua Nov 15, 2017 10:35 am
Qua Nov 15, 2017 2:24 am
Ter Nov 14, 2017 9:54 pm
Ter Nov 14, 2017 9:53 pm
Ter Nov 14, 2017 6:41 pm
Ter Nov 14, 2017 2:25 pm
Ter Nov 14, 2017 2:25 pm
Ter Nov 14, 2017 1:45 pm
Ter Nov 14, 2017 12:00 pm
Seg Nov 13, 2017 3:12 pm
Seg Nov 13, 2017 8:27 am
Dom Nov 12, 2017 10:09 pm
Dom Nov 12, 2017 9:55 pm
Dom Nov 12, 2017 8:52 pm
Dom Nov 12, 2017 6:43 pm
Dom Nov 12, 2017 5:02 pm
Dom Nov 12, 2017 3:23 pm
Dom Nov 12, 2017 2:15 pm
Dom Nov 12, 2017 1:43 pm
Dom Nov 12, 2017 1:25 pm
Dom Nov 12, 2017 11:35 am
Dom Nov 12, 2017 12:13 am
Sab Nov 11, 2017 10:11 pm
Sab Nov 11, 2017 9:44 pm
Sab Nov 11, 2017 9:40 am
Sex Nov 10, 2017 7:52 pm
Sex Nov 10, 2017 7:08 pm
Sex Nov 10, 2017 6:59 pm
Sex Nov 10, 2017 6:58 pm
Sex Nov 10, 2017 6:09 pm
Sex Nov 10, 2017 6:00 pm
Sex Nov 10, 2017 5:22 pm
Sex Nov 10, 2017 2:58 pm
Sex Nov 10, 2017 2:31 pm
Sex Nov 10, 2017 12:29 pm
Sex Nov 10, 2017 12:00 pm
Qui Nov 09, 2017 11:47 pm
Qui Nov 09, 2017 11:28 pm
Qui Nov 09, 2017 8:46 pm
Qui Nov 09, 2017 8:26 pm
Qui Nov 09, 2017 8:08 pm
Qui Nov 09, 2017 5:59 pm
Qui Nov 09, 2017 5:29 pm
Qui Nov 09, 2017 1:58 pm
Qui Nov 09, 2017 12:39 pm
Qui Nov 09, 2017 12:29 pm
Qui Nov 09, 2017 11:16 am
Qui Nov 09, 2017 9:08 am
Qui Nov 09, 2017 8:03 am
Qui Nov 09, 2017 4:08 am
Qui Nov 09, 2017 12:17 am
Qua Nov 08, 2017 10:03 pm
Qua Nov 08, 2017 9:44 pm
Qua Nov 08, 2017 9:22 pm
Qua Nov 08, 2017 7:26 pm
Qua Nov 08, 2017 2:33 pm
Qua Nov 08, 2017 2:25 pm
Qua Nov 08, 2017 11:41 am
Qua Nov 08, 2017 1:22 am
DUT
otavio00augusto
Josivaldo Augusto
Regis garcia
BRGC
glauco
MRX
recagonlei
recagonlei
recagonlei
sabbath
dimmuo
recagonlei
recagonlei
luiz12345
dstaroski
rafaelllsd
recagonlei
rafaelllsd
recagonlei
recagonlei
recagonlei
recagonlei
PauloFR
PauloFR
PauloFR
Diego Felix
ronito
ronito
Phph09
recagonlei
jamaisfiih
MRX
dstaroski
dstaroski
rafaelllsd
ronito
Phph09
Unidade3d5
AnderGames
Phph09
Giwn
DUT
Zecandy
Callyde Jr
natanael.olimpio
natanael.olimpio
Jonny
recagonlei
stratengine
Phph09
felipehobs1
Unoog
HPGBR
felipehobs1
rafaelllsd
PatifeCraft
rafaelllsd
Phph09
Phph09
Encracker
dimmuo
Encracker
Unidade3d5
BRGC
Callyde Jr
Phph09
raulframos
Callyde Jr
GameLACK
Fagner
niovery
BRGC
Dom3000
fabriciorsz34
PatifeCraft
Dom3000
Arqueiro Deckster
Phph09
Phph09
richardson
felipehobs1
joabr
Phph09
DUT
DUT
Zecandy
RW.
junkflash30
Emanuel
natanael.olimpio
Phph09
Phph09
Phph09
googolepton
richardson
Willian Wii
Weslley
Unidade3d5

Duvida sobre script

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA Duvida sobre script

Mensagem por arnaldojunior em Qua Ago 16, 2017 8:37 am

Olá estava criando uma cena onde duas esferas, uma azul e uma vermelha, ficariam se chocando e se afastando. Para que elas fossem em direção uma a outra eu usei este código:
Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.AI;





public class CombateBlue : MonoBehaviour {



    private GameObject sphereRed;

    private NavMeshAgent navMesh;





    // Use this for initialization

    void start () {



        sphereRed = GameObject.FindWithTag("SphereRed");

        navMesh = GetComponent<NavMeshAgent> ();

    

    }

    

    // Update is called once per frame

    void Update () {



        navMesh.destination = sphereRed.transform.position;        

    }

}




Entretanto quando eu inicio a cena ambas as esferas ficam paradas e o console retorna a mensagem:

NullReferenceException: Object reference not set to an instance of an object
CombateBlue.Update () (at Assets/Scripts/CombateBlue.cs:26)

Para que elas se afastem vou usar objetos vazios como spots e um trigger em cada esfera de forma a testar se a colisão foi com a sua rival e em caso positivo elas iriam para um desses spots. Também vou usar um contador para definir qual spot elas irão.

Mas a questão é: Por que estou tendo este retorno no console? Ambas estão com as tags certas.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qua Ago 16, 2017 9:06 am

Bom dia cara! Faça as seguintes alterações no seu script:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]

public class Teste : MonoBehaviour {
   private GameObject SphereRed;
   private UnityEngine.AI.NavMeshAgent navMesh;

   // Use this for initialization
   void Start () {
      SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");
      navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();
   }
   
   // Update is called once per frame
   void Update () {
      navMesh.destination = SphereRed.transform.position;
   }
}
e não esqueça de gerar o bake para o navmesh, se não não funciona, vá em Window>Navigation>Bake>Bake ele irá gerar uma mapa em azul, na qual indica por onde o objeto se move.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qua Ago 16, 2017 9:31 am

Obrigado. Só adicionei o UnityEngine.AI.   e  [RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]

Agora entendi ele não estava conseguindo "instanciar" o navmeshagent.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qua Ago 16, 2017 9:33 am

arnaldojunior escreveu:Obrigado. Só adicionei o UnityEngine.AI.   e  [RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]

Agora entendi ele não estava conseguindo "instanciar" o navmeshagent.
blz, funcionou então?
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qua Ago 16, 2017 11:19 am

Esta funcionando. Agora estou procurando um script para usar no OnTriggerEnter.
Ainda não sei como direcionar as esferas para os waypoints. A principio estou comparando tags, mas direciona-las... Estava pensando em usar o navmesh. Estou tentando lembrar como crio uma lista de array.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qua Ago 16, 2017 12:04 pm

Desculpem os constantes questionamentos, mas como estou iniciando na área ainda tenho duvidas por demais.
Agora estou com problemas na hora de testar a colisão e minhas esferas irem em direção aos spots.
Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

              SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

              navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

           }

       

       // Update is called once per frame

     void Update () {

        //diz ao navmeshagent para onde ir

        navMesh.destination = SphereRed.transform.position;

        x = 0;

           }

    void OnTriggerEnter (Collider other){

        if (gameObject.CompareTag ("SphereRed") && (x < spot.Length)) {            

            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,50);

            x++;

            if (x >= spot.Length) {

                x = 0;

            }

        } 



    }



}    
Sabem onde estou errando?

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qua Ago 16, 2017 5:31 pm

Boa tarde cara! dá uma olhada na busca do fórum sobre waypoints, achei esse aqui que acho que pode te ajudar, http://www.schultzgames.com/t2957-resolvido-pegar-objetos-filhos-e-adicionar-em-uma-lista-ou-array-para-usalos-como-waypoints?highlight=waypoints

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 1:47 pm

Eu vi o tópico que me indicou, mas percebi que meu erro era de lógica. Modifiquei meu script, mas agora meu problema é com o "trigger". Através do Debug percebi que o trigger não recebe um valor verdadeiro e não sei o motivo.
Código:



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;

    private bool sphere;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

              SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

              navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

        x = 0;

        sphere = false;

           }

    void OnTriggerEnter(Collider outro){

        

        //verifica se colidiu com a outra esfera e define o valor da boleana

        if (outro.gameObject.CompareTag ("SphereRed") && (x < spot.Length)) {



            sphere = true;



        } else {

            sphere = false;

        }    

    }

       

       // Update is called once per frame

     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == true) {



            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,50);

            x++;

            //Zera o x caso antes que ele ultrapasse o array

            if (x >= spot.Length) {

                x = 0;

            }

            

        } else {

            

            //diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;

        }



    }



}    

Poderiam me dizer o que esta errado?

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qui Ago 17, 2017 2:06 pm

Já tentou usar o tag ao invés de CompareTag?

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 2:44 pm

Acabei de tentar e retorna a mensagem: Membro não invocável...não pode ser usado como método.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qui Ago 17, 2017 3:00 pm

Cara, o script que vc colou está sem o cabeçalho com as Bibliotecas da Unity, testei aqui e funcionou perfeitamente, lembrando que tem que por true no Sphere para ele ir pro spot, se não ele vai para o SphereRed, funciona direitinho.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 3:11 pm

Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;

    private bool sphere;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

              SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

              navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

        x = 0;

        sphere = false;

           }

    void OnTriggerEnter(Collider outro){

        

        //verifica se colidiu com a outra esfera e define o valor da boleana

        if (outro.gameObject.CompareTag ("SphereRed") && (x < spot.Length)) {



            sphere = true;



        } else {

            sphere = false;

        }    

    }

       

       // Update is called once per frame

     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == true) {



            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,50);

            x++;

            //Zera o x caso antes que ele ultrapasse o array

            if (x >= spot.Length) {

                x = 0;

            }

            

        } else {

            

            //diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;

        }



    }



}


Esse é o script completo.
A cena começa com sphere = false e quando testa a colisão que modifica ou não o estado.

Código:
if (outro.gameObject.tag ("SphereRed") && (x < spot.Length)) {...}
Se eu modifico o teste pra tag da aquele erro que te falei.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Qui Ago 17, 2017 3:22 pm

a parte da tag ta errada, pelo menos sempre uso da seguinte forma: outro.gameObject.tag == "SphereRed" e dai o restante. Tentei aqui mas não consegui fazer a colisão funcionar, o script ficou sem erro, to sem tempo agora, se não conseguir resolver, a hora que eu tiver um tempo tento ver aqui.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 3:29 pm

Obrigado, a parte da tag estava errado mesmo, mas meu trigger continua não disparando. estou usando sphere collider e minhas esferas estão com as tags corretas. Não sei o que pode ser.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 4:06 pm

Fiz um teste com a booleana começando em verdadeiro e a esfera parou no primeiro spot. pelo visto meu problema é que meu trigger não esta funcionando.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qui Ago 17, 2017 4:26 pm

Hahahahaha, descobri meu erro. Precisa ter um rigidBody para usar colisões.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Sex Ago 18, 2017 9:38 am

arnaldojunior escreveu:Hahahahaha, descobri meu erro. Precisa ter um rigidBody para usar colisões.
blz, e funcionou certinho?

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Sab Ago 19, 2017 10:06 am

Não esta funcionando muito bem. Eu adicionei uma variável de velocidade e deixei:
Código:



     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == true) {

            Debug.Log ("Passou");

            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,velocSphere*Time.deltaTime);

            //Zera o x caso ele ultrapasse o array

            if (x >= spot.Length) {

                

                x = 0;

            }

            

        } else {

            

            //diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;

        }



Mas a esfera faz o percurso direto para o segundo spot, após isso ela retorna e vai para o quarto e depois ele apenas acompanha a esfera vermelha sem zerar o contador. Sabem me dizer onde estor errando?

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Sab Ago 19, 2017 10:31 am

Bom dia! por gentileza, quando postar seus scripts, poste-os inteiros.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por Phph09 em Sab Ago 19, 2017 1:41 pm

Tenta 
If( x  - 1 for maior que spot.length)...
avatar
Phph09
Programador

Masculino PONTOS : 532
REPUTAÇÃO : 49
Idade : 12
Áreas de atuação : Programação em C#(C-Sharp)
Unity
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Sab Ago 19, 2017 7:40 pm

Achei que seria melhor postar só uma parte para não poluir, mas se não tiver problema eu posto inteiro.
Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;

    private bool sphere;

    public float velocSphere;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

              SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

              navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

        x = 0;

        sphere = false;

           }

    void OnTriggerEnter(Collider outro){

        

        //verifica se colidiu com a outra esfera e define o valor da boleana

        if (outro.gameObject.tag == "SphereRed" ) {

            Debug.Log("colidiram");



            sphere = true;

            x++;



        } else {

            Debug.Log ("Não era");

            sphere = false;

        }    

    }

       

       // Update is called once per frame

     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == true) {

            Debug.Log ("Passou");

            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,velocSphere*Time.deltaTime);

            //Zera o x caso ele ultrapasse o array

            if (x >= spot.Length) {

                

                x = 0;

            }

            

        } else {

            

            //diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;

        }



    }



}

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Qua Ago 23, 2017 11:14 pm

Olá eu sou o Goku... pera, não errei.
Olá pessoal, eu analisei o código exaustivamente (fiquei quase 15 minutos sem tomar café) e descobri o erro na questão de zerar o contador para não ocorrer estouro, mas ainda não descobri o por quê de o incremento em "x" não seguir um padrão.
Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;

    private bool sphere;

    public float velocSphere;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

        SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

        navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

        sphere = false;

        x = 0;

           }

    void OnTriggerEnter(Collider outro){

        

        //verifica se colidiu com a outra esfera e define o valor da boleana

        if (outro.gameObject.tag == "SphereRed" ) {

            Debug.Log("colidiram");

            sphere = true;            

            //Zera o x caso ele ultrapasse o array

            if (x >= 5) {

                Debug.Log ("Passou");

                x = 0;

            }



        } else {            

            sphere = false;

            Debug.Log ("Não era");

            x++;

        }    

    }

       

       // Update is called once per frame

     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == false){

            

            //Diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;            



        } else {            



            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,velocSphere*Time.deltaTime);



        }



    }



}    
Como podem ver eu alterei o local onde fazia o teste na variável, ao invés de faze-lo no update e detonar a memoria eu o fiz no trigger. Assim o sistema tem muito mais tempo para processa-lo.
Resolvido este problema volto a pedir ajuda sobre o fato do incremento despadronizado.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por MarcosSchultz em Qui Ago 24, 2017 8:13 pm

Em que sentido o incremento deveria ser padronizado?
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9780
REPUTAÇÃO : 1684
Idade : 21
Á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

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Sex Ago 25, 2017 12:22 am

Meu contador x deveria incrementar uma unidade por vez, assim ele seguiria o padrão que defini para o índice, mas toda vez que o trigger é acionado ele adiciona dois, três, um... sabe não descobri um padrão nessa soma estranha. 

Detalhe: Onde eu defino um destino para as esferas eu alterei a ordem dos comentários mas não alterei a ordem dos comandos.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Seg Ago 28, 2017 11:32 am

Fiz estas alterações no script, e apesar de o meu contador ter melhorado, ainda tenho problemas: As esferas se chocam perfeitamente num primeiro momento, mas depois elas ficam girando sem se encostarem, o contador não zera.
Código:



using System.Collections;

using System.Collections.Generic;

using UnityEngine;

[RequireComponent(typeof(UnityEngine.AI.NavMeshAgent))]



public class CombateBlue : MonoBehaviour {

    private GameObject SphereRed;

    private UnityEngine.AI.NavMeshAgent navMesh;

    public Transform [] spot;

    private int x;

    private int spotatual;

    private bool sphere;

    public float velocSphere;



       // Use this for initialization

     void Start () {

        

        //Localiza o alvo, seleciona-o para a variavel e instancia o navmeshagent

        SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");

        navMesh = GetComponent<UnityEngine.AI.NavMeshAgent> ();

        sphere = false;

        x = 0;

        spotatual = 0;

           }



    void OnTriggerEnter(Collider outro){

        

        //verifica se colidiu com a outra esfera e define o valor da boleana

        if (outro.gameObject.tag == "SphereRed" ) {

            Debug.Log("colidiram");

            sphere = true;            

            //Zera o x caso ele ultrapasse o array

            if (x >= 5) {

                Debug.Log ("Passou");

                x = 0;

                spotatual = 0;

            }



        } else {            

            sphere = false;

            Debug.Log ("Não era");

            spotatual++;

        }    

    }

       

       // Update is called once per frame

     void Update () {

        //Se a Boleana for verdadeira a esfera vai para os spots

        if (sphere == false){

            

            //Diz ao navmeshagent para onde ir

            navMesh.destination = SphereRed.transform.position;

            x = spotatual;



        } else {            



            Vector3 alvo = spot[x].transform.position;

            transform.position = Vector3.MoveTowards(transform.position,alvo,velocSphere*Time.deltaTime);



        }



    }



}    

Como podem ver eu só adicionei uma variável de spot atual.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por MarcosSchultz em Qui Ago 31, 2017 5:15 pm

Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
[RequireComponent(typeof(NavMeshAgent))]
public class CombateBlue : MonoBehaviour {

   public Transform [] spot;

   GameObject SphereRed;
   NavMeshAgent navMesh;
   int x, spotatual;
   bool sphere;

   void Start () {
      SphereRed = GameObject.FindGameObjectWithTag ("SphereRed");
      navMesh = GetComponent<NavMeshAgent> ();
      sphere = false;
      x = spotatual = 0;
   }
      
   void OnTriggerEnter(Collider outro){
      if (outro.gameObject.tag == "SphereRed") {
         if (sphere == false) {
            Debug.Log ("colidiram");
            sphere = true;           
            if (x >= 5) {
               Debug.Log ("Passou");
               x = 0;
               spotatual = 0;
            }
         }
      } else {           
         sphere = false;
         Debug.Log ("Não era");
         spotatual++;
      } 
   }
   void Update () {
      if (sphere == false){
         navMesh.destination = SphereRed.transform.position;
         x = spotatual;
      } else {           
         Vector3 alvo = spot[x].transform.position;
         navMesh.destination = alvo;
      }
   }
}


Seria interessante você passar uma demo do projeto para que possamos entender como está montada a cena
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9780
REPUTAÇÃO : 1684
Idade : 21
Á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

DÚVIDA Re: Duvida sobre script

Mensagem por arnaldojunior em Dom Set 03, 2017 10:03 am

Olá como eu disse antes sou um novato em criação de jogos, agradeceria se me explicassem como gerar um demo.
Agradeço pela ajuda que me estão prestando.

arnaldojunior
Membro
Membro

PONTOS : 480
REPUTAÇÃO : 1
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Duvida sobre script

Mensagem por dstaroski em Dom Set 03, 2017 10:34 am

arnaldojunior escreveu:Olá como eu disse antes sou um novato em criação de jogos, agradeceria se me explicassem como gerar um demo.
Agradeço pela ajuda que me estão prestando.
Bom dia! você quer então fazer uma compilação do game, para tal, vá em Project>Build Settings em Scenes in Build, coloque as cenas que quer na versão do seu jogo, selecione a plataforma, creio ser para PC mesmo, no caso se for windows, deixe Windows em "Target Platform", e em "Architecture" deixe "x86_64". Agora clique em Build e escolha um local para salvar o jogo e siga em frente. Mas sugiro pesquisar mais a respeito para aprender a configurar o "Player Settings", para incluir sua logo marca, detalhes do produto e outras configurações, dá uma pesquisada na net.

Abraço!
avatar
dstaroski
Instrutor

Masculino PONTOS : 2206
REPUTAÇÃO : 538
Idade : 28
Áreas de atuação : Téc. Hardware e Redes, Programação C#, Daz3D and Gimp

Respeito as regras :

Ver perfil do usuário https://www.daz3d.com/gallery/users/1575361

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

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