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:
Duvida de camera
Brasileiros podem usar o Unity ADS?
Como muda o shaders da unity
Como verificar se a animação términou no animator
DUVIDA SCRIPT DO MARCOS SELEÇÃO DE PERSONAGEM !
SOBRE "IK" INVERSE KINEMATICS
Botão em cena de Realidade aumentada.
Duvida como instância um game objeto com Raycast
sobre build run no Android
e algum bug??
Preciso de ajuda com Programação no Unity
[DÚVIDA] Como descobrir se o Player está na frente do Npc
[TUTORIAL] Efeitos e Partículas
Terreno infinito
[TUTORIAL] Sistema COMPLETO de câmeras
[____ADMINISTRADOR OFFLINE____]
[MODELO 3D] Fita K7 para Uso Comercial
[Dúvida] Movimentação com touch
BRASILIAN TRUCK SIMULADOR
Como colocar o personagem a piscar quando bate num espinho por exemplo e perde vida???
[PROBLEMA] Problema ao conectar a um host com o Unet. (Localmente)
[DUVIDA] como melhorar a jogabilidade de um jogo 2D
MoonthyStudios, se junte a nós e seja reconhecido.
Script que detecta o nome do objeto que colidiu
DESLIGAR E LIGAR O CARRO
Diminuir tamanho do //BUILD// do projeto
Desenvolvendo um aeronave VTOL
[Asset] sendo criada, Hotel Completo(Ainda n esta pronta)
Erro ao tentar instalar o Visual Studio 2015
Unity ADS tem limite de anuncios diarios?
Idéias para games
Skript para atravessar uma area e ir para outra cena já como personagem
[RESOLVIDO] Script
RIGIDBODY...
Uno Game with Unity 3D
multiplayer
Android Swipe
Menu Button UI
Objeto ir para raycast
Formaçao de equipe para jogo de sobrevivencia online
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
Resolver Error
[____TÓPICO LIVRE____] FALE O QUE QUISER
Recarregador de arms
Alguém Para Dar Uma Avaliada no Meu Jogo de Terror :)
Tela rosa em jogos
MonoDevelop
[TUTORIAL] Cutscene inicial!
Design de apartamento (interior)
[RESOLVIDO] //Script// pressionar botão e destruir objeto não funciona
Objeto ultrapassando Colisor
Stop Animation
Como usar uma animação de uma arma animada na Unity...
Como funciona esse script?!
Delay e ativar variavel de audio
Text to Speech ou outra sugestão
[RESOLVIDO] Como deixar sempre com dois dígitos
[RESOLVIDO] ERRO NO SISTEMA DE FOME, VIDA, STAMINA ETC... DO MARCOS
[RESOLVIDO] VOID START???
[RESOLVIDO] Animação
jogo quiz 2D unity 5...
(Dúvida) Objeto receber posição do Raycast.
Personagem em 3ª pessoa
Projeto - IMU, terror de sobrevivência em primeira pessoa (estilo silent hill)
JUMP no estilo Subwey surf
Auxilio para script de Câmera
[TUTORIAL] AI Enemy ( Jogos de terror )
Criar varias funções de mesmo nome em um script
Como Que faço Para Quando Eu Reentrar no game o PlayerPrefs restaurar os dados salvos?
[ASSET] Cama Realista 3D + Download Grátis!
[RESOLVIDO] Meu Script Sumiu!
Como colocar arvores configuradas pelo terrain?
Problema de conexão com o fórum
Desenvolvimento de game PokeGen MS - Vídeo e informações
dúvida com variáveis
Câmera tipo Uncharted
Iluminação unity 5
Procuro membros para minha Equipe (Programadores, designers, etc)
Galera aki tenho um site com muitos models 3d
COMO COLOCO LANTERNA DE LED NO MEU JOGO DE BUS
Problema Com Virtual Buttons Help me ;-;
GALERA PRECISO DE MODELADORES ,DESIGNER E PROGAMADORES PARA A MINHA EQUIPE DE UNITY 5
Ajuda na script
[ajuda] câmera puxada
Duvida de script de controle
Não carrega próxima cena após finalizar cutscene
Duvida de script avançada
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Vocês poderiam avaliar meu jogo para Android? (30mb)
Ajuda com elementos UI
Ajuda com AI
Multiplayer com photon
[PEDIDO] Tutorial de Multiplayer
procuro equipe para meu jogo de bus
Formação de equipe para jogo estilo Days Gone (Campanha , Multiplayer) , (já está em criação)
AJUDA SCRIPT LUZ UNITY 5.5
3 Armas mediavais gratis, criada por min
Alguém poderia me ajudar a entender esse script
[TUTORIAL] Entrar no carro estilo GTA
Hoje à(s) 16:55
Hoje à(s) 16:53
Hoje à(s) 16:50
Hoje à(s) 16:48
Hoje à(s) 16:36
Hoje à(s) 16:32
Hoje à(s) 16:30
Hoje à(s) 16:30
Hoje à(s) 16:24
Hoje à(s) 16:23
Hoje à(s) 15:13
Hoje à(s) 15:12
Hoje à(s) 14:26
Hoje à(s) 14:01
Hoje à(s) 13:55
Hoje à(s) 13:27
Hoje à(s) 13:10
Hoje à(s) 11:02
Hoje à(s) 10:24
Hoje à(s) 7:15
Hoje à(s) 1:45
Hoje à(s) 1:01
Hoje à(s) 0:57
Ontem à(s) 23:46
Ontem à(s) 23:01
Ontem à(s) 22:15
Ontem à(s) 20:15
Ontem à(s) 18:36
Ontem à(s) 18:19
Ontem à(s) 18:14
Ontem à(s) 13:25
Ontem à(s) 12:56
Ontem à(s) 12:22
Ontem à(s) 12:21
Ontem à(s) 8:23
Sab 21 Jan 2017 - 22:13
Sab 21 Jan 2017 - 22:04
Sab 21 Jan 2017 - 21:39
Sab 21 Jan 2017 - 21:34
Sab 21 Jan 2017 - 21:17
Sab 21 Jan 2017 - 16:08
Sab 21 Jan 2017 - 15:21
Sab 21 Jan 2017 - 14:22
Sab 21 Jan 2017 - 13:45
Sab 21 Jan 2017 - 13:23
Sab 21 Jan 2017 - 13:16
Sab 21 Jan 2017 - 2:31
Sab 21 Jan 2017 - 1:38
Sab 21 Jan 2017 - 0:07
Sex 20 Jan 2017 - 22:23
Sex 20 Jan 2017 - 21:23
Sex 20 Jan 2017 - 20:04
Sex 20 Jan 2017 - 19:56
Sex 20 Jan 2017 - 19:51
Sex 20 Jan 2017 - 14:53
Sex 20 Jan 2017 - 10:34
Sex 20 Jan 2017 - 5:22
Qui 19 Jan 2017 - 22:05
Qui 19 Jan 2017 - 22:04
Qui 19 Jan 2017 - 15:31
Qui 19 Jan 2017 - 14:41
Qui 19 Jan 2017 - 11:02
Qui 19 Jan 2017 - 10:17
Qui 19 Jan 2017 - 9:58
Qua 18 Jan 2017 - 23:04
Qua 18 Jan 2017 - 22:35
Qua 18 Jan 2017 - 22:10
Qua 18 Jan 2017 - 20:27
Qua 18 Jan 2017 - 20:27
Qua 18 Jan 2017 - 19:45
Qua 18 Jan 2017 - 19:21
Qua 18 Jan 2017 - 17:32
Qua 18 Jan 2017 - 15:58
Qua 18 Jan 2017 - 14:07
Qua 18 Jan 2017 - 12:59
Qua 18 Jan 2017 - 12:23
Ter 17 Jan 2017 - 20:57
Ter 17 Jan 2017 - 20:17
Ter 17 Jan 2017 - 18:54
Ter 17 Jan 2017 - 17:13
Ter 17 Jan 2017 - 10:16
Ter 17 Jan 2017 - 7:54
Seg 16 Jan 2017 - 17:21
Seg 16 Jan 2017 - 17:12
Seg 16 Jan 2017 - 17:11
Seg 16 Jan 2017 - 17:11
Seg 16 Jan 2017 - 17:10
Seg 16 Jan 2017 - 17:05
Seg 16 Jan 2017 - 17:03
Seg 16 Jan 2017 - 15:01
Seg 16 Jan 2017 - 14:02
Seg 16 Jan 2017 - 12:02
Seg 16 Jan 2017 - 10:53
Dom 15 Jan 2017 - 22:14
Dom 15 Jan 2017 - 18:31
Dom 15 Jan 2017 - 18:03
Dom 15 Jan 2017 - 17:54
Dom 15 Jan 2017 - 17:17
Dom 15 Jan 2017 - 16:30
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Raaby Miranda
MarcosSchultz
MarcosSchultz
MarcosSchultz
Fabroid
George Lucas Vieira
George Lucas Vieira
weslleyFx
weslleyFx
John Rambo
LucioHenrique
MrKarate
mukalok73
Jogos mini
marcos4503
artplayer
artplayer
weslleyFx
tom ramber
AndyShow
gametrueheroes
LukkaFA
Fabroid
Kenji Haruno
MateusWTP
kalel013
GabrielRaaposo
lucasfera15
dstaroski
anizioNoob
anizioNoob
TassoCervi
George Lucas Vieira
MateusWTP
Alerson Software
OnofreUnity
joabr
Callyde Jr
Moa
weslleyFx
Alerson Software
Dayzr
LukkaFA
joabr
AndyShow
weslleyFx
weslleyFx
weslleyFx
GustavoMaster
AndyShow
AndyShow
Joker 22
lucasfera15
GustavoMaster
Kenji Haruno
luKkaSs
AndyShow
joabr
poker14k
artplayer
Pedro Canassa Garcia
pablo10544
LegendGames
artplayer
AndyShow
artplayer
Weverton Borges da Silva
AndyShow
AndyShow
John Rambo
John Rambo
dstaroski
MonsaM
John Rambo
anizioNoob
dstaroski
MarcosSchultz
MarcosSchultz
MarcosSchultz
joabr
MarcosSchultz
MarcosSchultz
marcos4503
sabbath
Callyde Jr
artplayer
Chilinger
Manawydan
Willian Wii
Pedro Canassa Garcia
MateusWTP
Willian Wii
tom ramber

[RESOLVIDO] Ajudinha com código

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

Resolvido [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Ter 9 Ago 2016 - 6:23

Salve pessoal!

Atualmente eu estou utilizando SphereCastAll no FixedUpdate para interação com objetos. Dentro deste, eu tenho um Switch Case dentro de um for para tratar as tags dos objetos de colisão do SphereCast e realizar as ações. Segue o Código:

Código:
void DisparaRayCast(){
 //Cria um SphereCastAll a partir do objeto de referência (ObjRaycast) na diagonal e armazena todas as colisões no "Array" Alvo.
 Alvo = Physics.SphereCastAll (ObjRaycast.position,0.4f,new Vector3(ObjRaycast.forward.x,-1,ObjRaycast.forward.z),3);
 //Trata as tags dos objetos que colidiram com o RayCast e executa as ações...
 for (int i = 0; i < Alvo.Length; i++) {
 switch (Alvo [i].collider.tag) {
 case "Colecionavel":
 if (Input.GetKeyDown (KeyCode.E)) {
 NetworkIdentity idObj = Alvo [i].collider.GetComponent<NetworkIdentity> ();
 Debug.Log ("<color=red>" + Alvo [i].collider.name + "</color>");
 NetworkIdentity oldObjPai = TransformPai.GetComponent<NetworkIdentity>();
 CmdPegaObjeto (idObj, idPlayer, oldObjPai);

 }
 Debug.DrawLine (ObjRaycast.position, Alvo [i].point, Color.red);
 //Destaca o Objeto
 Renderer Objeto = Alvo[i].collider.GetComponent<Renderer>();
 DestacaObjeto (Objeto,0.365f);

 break;



 default:
 
 break;
 }
 }
 
 }

Sim, eu só tenho um case para testes, mas existem outras tags a serem tratadas. Estou usando SphereCast no lugar de RayCast porque o jogador vai poder interagir com mais de um objeto.

E no FixedUpdate...
Código:
void FixedUpdate(){
 if (!isLocalPlayer) {
 return;
 }
 DisparaRayCast ();
 }

O código funciona muito bem, a questão é que em computadores com uma placa de vídeo mais modesta, em áreas que existem muitos objetos o jogo sofre uma queda de quadros terrível. Todas as máquinas em que eu realizei os testes tem o mesmo processador e memória, (i7 / 8gb de ram) mudando somente a placa de vídeo.


  1. RayCasts e derivados consomem mais processamento da GPU e não da CPU?
  2. Alguém poderia sugerir uma maneira "menos porca" de fazer isso? 
  3. Quando utilizo um RayCastAll e ele colide com um ojeto, ele não armazena só o pai, mas sim todos os filhos de um objeto?


Abraços e sucesso a todos !


Última edição por artplayer em Ter 9 Ago 2016 - 8:13, editado 1 vez(es)

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Ter 9 Ago 2016 - 8:12

Ok, consegui amenizar muito o problema aqui. 

Troquei SphereCastAll por Spherecast e retirei o DrawLine do debug (Ele estava ajudando na queda de FPS).
Código:
void DisparaRayCast(){
 if (Physics.SphereCast (ObjRaycast.position, 0.4f, new Vector3 (ObjRaycast.forward.x, -1, ObjRaycast.forward.z), out Alvo, 3)) {
 
 switch (Alvo.collider.tag) {
 case "Colecionavel":
 ExibeBtnInteracao (true);
 if (Input.GetKeyDown (KeyCode.E)) {
 NetworkIdentity idObj = Alvo.collider.GetComponent<NetworkIdentity> ();
 Debug.Log ("<color=red>" + Alvo.collider.name + "</color>");
 NetworkIdentity oldObjPai = TransformPai.GetComponent<NetworkIdentity> ();
 CmdPegaObjeto (idObj, idPlayer, oldObjPai);
 }
 

 break;



 default:
 ExibeBtnInteracao (false);
 break;
 }
 };
 
 }

Isso já reduziu bastante a queda de FPS em uma placa de vídeo inferior, mas não o bastante a ponto de deixar o jogo liso. Com esta mesma placa de vídeo, fiz alguns testes em jogos com mapas parecidos com o meu desenvolvidos com unity ( The Forest foi um deles ).
O problema é exatamente o mesmo quando se trata de mapas com muitas árvores/grama. Pra falar a verdade o desempenho é exatamente o mesmo, mesmo com configurações muito baixas.

Minha conclusão:
Meu código estava porco sim (E ainda pode estar), mas não dá pra ter um desempenho ótimo em todas as placas de vídeo, infelizmente. 
Pelo menos isso me ajudou a ter um parâmetro pra definir os requisitos mínimos do jogo. Wink

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por MarcosSchultz em Qua 10 Ago 2016 - 23:32

SphereCast infelizmente eh MUITO pesado.

Este é um dos motivos da wheelCollider da Unity (colisor para rodas) ser tão ruim. Eles priorizaram o desempenho e fizeram ser apenas 1 raycast para baixo em vez de um circulo com vários raios.

Depende da sua necessidade, mas as vezes usar um Raycast pode ser mais lucrativo

MarcosSchultz
Administrador

Masculino PONTOS : 7541
REPUTAÇÃO : 995
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Sab 13 Ago 2016 - 15:46

É que no meu caso, o personagem está em terceira pessoa e a cabeça dele não se move. Um RayCast simples acabaria sendo muito "fino". Ainda estou usando SphereCast, mas a sua mensagem acabou me fazendo ter uma idéia:

"Rotacionar" o raycast em um ângulo de 45º pra cima e pra baixo a partir do centro, uma espécie de scanner. Só não sei se isso vai interferir no desempenho.

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por RenanMSV em Sab 13 Ago 2016 - 15:54

Colocar um raycast no centro da tela ignorando o player n da ?

RenanMSV
Instrutor

Masculino PONTOS : 1597
REPUTAÇÃO : 318
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Sab 13 Ago 2016 - 17:33

RenanMSV escreveu:Colocar um raycast no centro da tela ignorando o player n da ?

É que podem ter Objetos no chão ou no alto e a cabeça dele não se move. Então atuamento estou usando um Spherecast com uma grossura razoável saindo dos olhos dele em direção ao chão. Estou usando MeshCollider em algumas ferramentas. Um RayCast comum, acaba não pegando em objetos muito finos ou pequenos. Por isso acabei optando pelo Sphere. Mas tenho a impressão que isso está me dando um custo desnecessário.




... A não ser que eu ponha um BoxCollider com IsTrigger!, Daí dá pra usar um RayCast de boa acho. Vou correr e testar aqui.

 Não tinha pensado nisso ainda! Embarassed

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Sab 13 Ago 2016 - 17:56

Funcionou bem aqui, substitui o SphereCast por um Raycast, e nos objetos tenho um MeshCollider ( pra manter a realidade da física quando o objeto cai no chão por exemplo ), e um BoxCollider com IsTrigger pro Raycast.

Não vi mudança em questão de desempenho. No final, acabei ficando com a impressão de que troquei 6 por meia dúzia.

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por Manawydan em Sab 13 Ago 2016 - 18:49

voce usa o profiler pra verificar o desempenho?

Manawydan
Moderador

PONTOS : 594
REPUTAÇÃO : 107
Idade : 20
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Resolvido Re: [RESOLVIDO] Ajudinha com código

Mensagem por artplayer em Sab 13 Ago 2016 - 19:01

Sim sim, só diminuiu um pouco o consumo da CPU. E em resoluções mais baixas o FPS foi de 28 a 78 ~100. Então acho que tive um ganho considerável sim. Só vou ter que testar o client em uma máquina mais modesta.

artplayer
ProgramadorMaster

PONTOS : 597
REPUTAÇÃO : 124
Idade : 32
Respeito as regras :

Ver perfil do usuário

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