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:
[____TÓPICO LIVRE____] FALE O QUE QUISER
// RAIN no unity//
[Assets/Scripts] Repositório no Github com sistemas free.
[DÚVIDA]Texto Não Aparece Unity 5
[DUVIDA] Script Não Funciona
Texturização para Game em android
Como fazer aparecer notificações no celular android?
Limite e Volta no transform translate
objeto descer ao apertar um botão
[RESOLVIDO]Erro com script OnTriggerEnter e BoxCollider
Duvida com script
Problema com Animation
[2 interiores Modelo] + Download Grátis --Para uso comercial!
Ajudem com efeito "gelatina" em modelos.
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
[_____CRONOGRAMA DO CANAL_____]
Testem meu Jogo de Aventura
Inteligência Artificial
Como fazer 1 Portal
[Assets] modelos 3d
Da para criar com o unity?
Existe algum tipo de FPSController para android?
QUIOFOBIA DEMO-JOGO DE TERROR INDIE
[TUTORIAL] Unity 5 - Porta automática
Problema com o MonoDevelop
Como melhorar desempenho de animações
Cena Loading para carregar proximo Level
Sistema de build place
como criar um jogo igual a guitar hero?
(Dúvida) Erro criar sala com Photon.
Sistema de Skins estilo CsGo ou Critical Ops...
Dicas para otimizar o meu jogo
Sistema de construção estilo habbo
Como usar o Multi Touch para movimentar um personagem ?
[ERRO] Fatal Error Unity!!!
Fazer um Certo Ponto da mesh mudar de cor como um botão piscando
PlayerPrefs
[TUTORIAL] UNITY 5 - Efeito submerso (underwater effect), distorção da água e gotas na tela
Dúvida sobre instantiate!
Footsteps no CharacterController (Unity 5)
Como fazer objetos não atravessar paredes usando transform.Translate?
Quando meu inimigo morre todos morrem, alguem ajuda ?
Asset Store
Mudar cor de um material por Script de forma suave
[Dúvida] Otimização
[DUVIDA] Como utilizar o touch no Android em um jogo 2D
[TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
Mudança no NavMeshAgent?
Script para saber se ena está ativa ou carregada
Duvida
Inserir uma página da web dentro do meu jogo
[TUTORIAL] Acessar propriedades dos SHADERS através de SCRIPTS
// Sistema de Afogamento//
Inimigo seguir quando ver o player
Jogo da Memória para crianças. (Android)
(Dúvida) Mirar em terceira pessoa.
Eu produzi esse jogo na unity e gostaria que vocês testassem e avaliassem
I.A Que ataca qualquer coisa inclusive Players..
[DUVIDA]Pergunta Aleatória
Teclado igual o jogo do milhão
Modelos 3d para uso gratuito ou comercial
[TUTORIAL] Unity 5- Sistema de PLATAFORMAS COM ROTAS
///Duvida///
Unity 5 lag com muitas arvores e grass
Problema com "Non-convex MeshCollider"
[____REGRAS DO FÓRUM____]
modelo 3d rotaçao estranha
Direitos autorais de modelos 3D?
ZombieAI
Iluminação ou Shader Bugado ?!
como criar uma barra de vida?
[Asset]Terreno .dae
Problema com GetComponent
[RESOLVIDO] Como ativar e desativar um objeto.
COMO ATIVAR ANIMACAO EMPURRAR OBJETO?
(DUVIDA) Empurrar caixas estilo Resident Evil
Erro de falsa memoria
preciso usar o Lerp fora do Update
[ AJUDA ]Probemas Com seleção de Carros.
Terminei meu game de terror...joguem...
[RESOLVIDO] COMO CRIAR UM ASSET ?
[RESOLVIDO] Como posto o link do game q fiz para o pessoal testar e avaliar?
Criação de tags para objetos
jogo estilo resident evil 4
[TUTORIAL] Pegar arma do chão ao Aperta E (Unity 5)
Direitos autorais
Terrain Bugado
AI Pedestres
Problema com texto ao fazer o build
Onde encontro aulas sobre shaders para a unity 5?
Audio Player C#
UNITY - MOVIE TEXTURE ON ANDROID
Recrutamento para jogo de sobrevivencia estilo DayZ/Rust/H1Z1
Destruir cubos em pedaços Com Um Progetil
(DUVIDA) troca textura em degradê
[RESOLVIDO] Movimento aleatório e suave de um objeto
Reproduzir vídeos do youtube
Return To Ruins Recrutando!
Script de mapa ramdomico?
Hoje à(s) 8:51 am
Hoje à(s) 6:11 am
Hoje à(s) 12:18 am
Ontem à(s) 11:32 pm
Ontem à(s) 11:25 pm
Ontem à(s) 8:27 pm
Ontem à(s) 8:19 pm
Ontem à(s) 6:26 pm
Ontem à(s) 5:53 pm
Ontem à(s) 3:15 pm
Ontem à(s) 2:20 pm
Ontem à(s) 1:58 pm
Ontem à(s) 12:42 pm
Ontem à(s) 11:52 am
Ontem à(s) 9:18 am
Ontem à(s) 9:07 am
Ontem à(s) 12:36 am
Ter Fev 21, 2017 10:18 pm
Ter Fev 21, 2017 9:15 pm
Ter Fev 21, 2017 8:45 pm
Ter Fev 21, 2017 8:21 pm
Ter Fev 21, 2017 7:20 pm
Ter Fev 21, 2017 5:16 pm
Ter Fev 21, 2017 4:40 pm
Ter Fev 21, 2017 3:26 pm
Ter Fev 21, 2017 1:53 pm
Ter Fev 21, 2017 1:18 pm
Ter Fev 21, 2017 1:06 pm
Ter Fev 21, 2017 11:42 am
Ter Fev 21, 2017 11:25 am
Ter Fev 21, 2017 10:15 am
Seg Fev 20, 2017 10:43 pm
Seg Fev 20, 2017 10:00 pm
Seg Fev 20, 2017 9:06 pm
Seg Fev 20, 2017 9:04 pm
Seg Fev 20, 2017 9:02 pm
Seg Fev 20, 2017 9:00 pm
Seg Fev 20, 2017 8:58 pm
Seg Fev 20, 2017 8:56 pm
Seg Fev 20, 2017 8:49 pm
Seg Fev 20, 2017 8:46 pm
Seg Fev 20, 2017 8:44 pm
Seg Fev 20, 2017 8:42 pm
Seg Fev 20, 2017 8:40 pm
Seg Fev 20, 2017 8:36 pm
Seg Fev 20, 2017 8:28 pm
Seg Fev 20, 2017 8:25 pm
Seg Fev 20, 2017 8:23 pm
Seg Fev 20, 2017 8:19 pm
Seg Fev 20, 2017 8:14 pm
Seg Fev 20, 2017 8:12 pm
Seg Fev 20, 2017 7:37 pm
Seg Fev 20, 2017 3:35 pm
Seg Fev 20, 2017 3:19 pm
Seg Fev 20, 2017 8:54 am
Seg Fev 20, 2017 12:10 am
Dom Fev 19, 2017 10:55 pm
Dom Fev 19, 2017 9:18 pm
Dom Fev 19, 2017 9:02 pm
Dom Fev 19, 2017 8:31 pm
Dom Fev 19, 2017 6:37 pm
Dom Fev 19, 2017 6:32 pm
Dom Fev 19, 2017 3:46 pm
Dom Fev 19, 2017 3:33 pm
Dom Fev 19, 2017 10:43 am
Sab Fev 18, 2017 11:53 pm
Sab Fev 18, 2017 9:17 pm
Sab Fev 18, 2017 8:34 pm
Sab Fev 18, 2017 8:13 pm
Sab Fev 18, 2017 6:58 pm
Sab Fev 18, 2017 5:32 pm
Sab Fev 18, 2017 4:20 pm
Sex Fev 17, 2017 9:27 pm
Sex Fev 17, 2017 7:18 pm
Sex Fev 17, 2017 9:54 am
Qui Fev 16, 2017 6:40 pm
Qui Fev 16, 2017 4:59 pm
Qui Fev 16, 2017 1:14 pm
Qui Fev 16, 2017 11:32 am
Qua Fev 15, 2017 11:24 pm
Qua Fev 15, 2017 10:10 pm
Qua Fev 15, 2017 8:12 pm
Qua Fev 15, 2017 3:08 pm
Qua Fev 15, 2017 2:52 pm
Qua Fev 15, 2017 2:43 pm
Qua Fev 15, 2017 1:20 pm
Qua Fev 15, 2017 12:10 pm
Qua Fev 15, 2017 9:26 am
Qua Fev 15, 2017 8:26 am
Qua Fev 15, 2017 8:22 am
Qua Fev 15, 2017 8:19 am
Qua Fev 15, 2017 8:17 am
Ter Fev 14, 2017 11:37 pm
Ter Fev 14, 2017 10:51 pm
Ter Fev 14, 2017 10:06 pm
Ter Fev 14, 2017 3:57 pm
Ter Fev 14, 2017 2:20 pm
Ter Fev 14, 2017 12:24 pm
Ter Fev 14, 2017 11:02 am
dstaroski
AndyShow
dimmuo
Blue Ark
GabrielRaaposo
DoctorGame15
PauloFR
thiagograssi
thiagograssi
PauloFR
Junim
anizioNoob
Callyde Jr
lucasfera15
Fábiow775
tom ramber
MateusWTP
zBanidor
tom ramber
PauloFR
Willian Wii
Willian Wii
MateusWTP
silva75
zZAndersonZz
sabbath
Marc7
dstaroski
thiagograssi
rafaelllsd
Sheyk
MarcosSchultz
Luiz Mauro TCC
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
CanabravaBR
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
Zecandy
AndyShow
Pulitano
artplayer
niao
vegasbr
Manawydan
rafaelllsd
joabr
Blue Ark
Zecandy
AndyShow
regisbaldo
MarcosSchultz
joabr
joabr
tom ramber
lordstrik
Callyde Jr
PauloFR
cron
BananaSmith
LukiAli
Zecandy
LukiAli
erick.q.faria
dstaroski
hackernew404
LuizFixa3D
John Rambo
Marc7
dstaroski
Mic4el
joabr
lucasfera15
tom ramber
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
matheus1415
rafaelllsd
Édipo
Marc7
John Rambo
felipefell
André Damazio

[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 Ago 09, 2016 6:23 am

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 Ago 09, 2016 8:13 am, editado 1 vez(es)

artplayer
ProgramadorMaster

Masculino PONTOS : 698
REPUTAÇÃO : 150
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 Ago 09, 2016 8:12 am

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

Masculino PONTOS : 698
REPUTAÇÃO : 150
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 Ago 10, 2016 11:32 pm

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 : 7845
REPUTAÇÃO : 1070
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 Ago 13, 2016 3:46 pm

É 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

Masculino PONTOS : 698
REPUTAÇÃO : 150
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 Ago 13, 2016 3:54 pm

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

RenanMSV
Instrutor

Masculino PONTOS : 1640
REPUTAÇÃO : 320
Á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 Ago 13, 2016 5:33 pm

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

Masculino PONTOS : 698
REPUTAÇÃO : 150
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 Ago 13, 2016 5:56 pm

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

Masculino PONTOS : 698
REPUTAÇÃO : 150
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 Ago 13, 2016 6:49 pm

voce usa o profiler pra verificar o desempenho?

Manawydan
Moderador

PONTOS : 645
REPUTAÇÃO : 114
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 Ago 13, 2016 7:01 pm

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

Masculino PONTOS : 698
REPUTAÇÃO : 150
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