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:
Curso de unity presencial
(Dúvida) Photon - Slot de salas criadas.
BUG COM NAVMESH Alguem Sabe Arrumar?
Preciso de Designer/Artista Para Card Game 2D
Adicionar marcador de Tempo no jogo
ERRO SCRIPT
[TUTORIAL] Spawn de objetos aleatorios em lugares aleatorios
ferr2D vale a pena?
como fazer uma objeto se mover sozinho?
Itemlist
Teste de jogo multiplayer ILHAS
Ilumição
[Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
(Animator)Voltar a um estado de animação mais nao executar a mesma
Modelagem Uvm
Precisamos de modeladores
Duvida sobre o Unet
Rigidbody2D AddForce - Como adicionar uma força oneshot.
visualizador de ritmo
SCRIPT TIRO - UNITY 3d
duvida
Frameworks/tutoriais para jogo 2D?
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Mesmo material mas objeto mais claro
✖ Projeto HOSPICE Horror Game !! ✖
Machado PBR | 3D Axe with PBR textures.
Em breve Ilhas Multiplayer, sobrevivencia PVP E PVM
Text multiplayer
[TUTORIAL] Avião Script
Colocar Gifs em uma UI Unity 5?
Como faço para a musica continuar tocando quando muda de cena?
MANTER TELA DO CELULAR LIGADA
Tirar Fotos no Unity 5 FPS
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
como posso colocar tempo em qualquer script?
SCRIPT ISOMETRICO PARA ROTACIONAR O PLAYER COM MOUSE
MEU JOGO DE TERROR EM DESENVOLVIMENTO E BLOGGUER
Alguém pode fazer um rig pra mão do meu personagem?
Verificar quantos objetos tem a seguinte tag na scena
the ŞỮŘVƗVΔŁ ƗŞŁΔŇĐ [Lançamento]
Time
Unity Banco de Dados
Grave no Som da Unity!
ESSE EO MEU JOGO QUE EU ESTOU DESENVOLVENDO (VERSAO ALPHA)
Assesar Script De Outra Script
Camera FPS atravessa paredes
R7 - GOOH (resident evil 7)
Formação de equipa para o Jogo Until the last
Suspensão carro com raycast
como criar um botao dentro do if() (em C# pq quero padronizar tudo na mesma linguagem)
Arquivos de Expanssão OBB
Formação de equipe para jogo estilo Rust/DayZ
[DUVIDA]como girar sprite somente no eixo X em direção do mouse
GRAVIDADE não é compatível com Camera.main.ScreenToViewportPoint ?
[SUPER ATUALIZAÇÃO] - Android - Night Hunter RPG, Faça um teste e avalie! Alpha #5
Recrutamento para jogo de sobrevivencia estilo DayZ/Rust/H1Z1
-[SCRIPT DE POSIÇÕES ]-
[Duvida] Unity5 - Physics2D.Raycast não obedece distância máxima.
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
como posso fazer sons dos passos do inimigo
Unity - Car engine sound - Primeiro teste
Dúvida sobre particulas
[RESOLVIDO] Executar animação após um X segundos
Como indentificar que estou escrevendo [Unity.UI inputField]
[RESOLVIDO] Blender - Mesh com ossos bugados
[RESOLVIDO] OntriggerEnter Bugado
[RESOLVIDO] Problema com o Reimport e atualização do modelo
Como fazer o raycast ignorar a primeira colisao?
[RESOLVIDO] Animações no script
Transição de Cores Entre Cenas!
Sistema de corrida
Como Detectar toques e destruir objetos no jogo
Terreno procedural com blocos para baixo
alguem poderia me ajudar??
[TUTORIAL] AI Enemy 2.0 + animações ( Jogos de terror )
alguem sabe um sistema/ideia/tutorial de nicknames/indentificaçao para NETWORK local???
Jogo na Play Store e atualmente tem 40 downloads.
Translate.rotate ( 0, 0, Erro )
[Duvida] Time.TimeScale em jogo multiplayer
Aplicativo Reseta o Banco de Dados - Sqlite
7 erros no script conectar
Audio Player C#
Divulgaçao de Battle of Worlds
Duvida sobre Screenshot e share
Sistema de Buscar o Inimigo Mais Perto
[TUTORIAL] Criar um Array ( lista de objetos )
Casa do CJ Remake unity 2017 + Blender
Fazer um objeto brilhar
criação de terreno realista
Navmesh em mapa gerado aleatoriamente existe?
Linkar Objetos FIlhos!
Seguir um raio no raycast a partir do ponto da tela clicado
Destruir Objetos Filhos
Como fazer um jogo Isometrico com Unity ?
[Duvida] Prefab instanciado não esta indo na direção correta
Sistema De dois Players
Formação de uma equipe pequena
Terreno Procedural
quero instanciar um obj vazio como faço?
Hoje à(s) 6:44 am
Hoje à(s) 3:08 am
Hoje à(s) 12:29 am
Ontem à(s) 11:11 pm
Ontem à(s) 10:44 pm
Ontem à(s) 9:57 pm
Ontem à(s) 9:42 pm
Ontem à(s) 9:36 pm
Ontem à(s) 8:17 pm
Ontem à(s) 7:04 pm
Ontem à(s) 5:52 pm
Ontem à(s) 5:33 pm
Ontem à(s) 4:44 pm
Ontem à(s) 3:42 pm
Ontem à(s) 3:39 pm
Ontem à(s) 2:13 pm
Ontem à(s) 1:27 pm
Ontem à(s) 12:16 pm
Ontem à(s) 11:53 am
Ontem à(s) 11:37 am
Ontem à(s) 9:58 am
Ontem à(s) 9:27 am
Ontem à(s) 6:10 am
Ontem à(s) 1:53 am
Seg Out 16, 2017 9:17 pm
Seg Out 16, 2017 8:06 pm
Seg Out 16, 2017 5:27 pm
Seg Out 16, 2017 4:26 pm
Seg Out 16, 2017 3:08 pm
Seg Out 16, 2017 12:52 pm
Seg Out 16, 2017 10:38 am
Seg Out 16, 2017 10:36 am
Seg Out 16, 2017 10:07 am
Seg Out 16, 2017 9:44 am
Seg Out 16, 2017 6:53 am
Seg Out 16, 2017 12:53 am
Dom Out 15, 2017 9:00 pm
Dom Out 15, 2017 8:42 pm
Dom Out 15, 2017 8:35 pm
Dom Out 15, 2017 7:23 pm
Dom Out 15, 2017 7:05 pm
Dom Out 15, 2017 6:36 pm
Dom Out 15, 2017 6:06 pm
Dom Out 15, 2017 5:59 pm
Dom Out 15, 2017 5:41 pm
Dom Out 15, 2017 5:08 pm
Dom Out 15, 2017 4:57 pm
Dom Out 15, 2017 4:11 pm
Dom Out 15, 2017 4:04 pm
Dom Out 15, 2017 3:29 pm
Dom Out 15, 2017 2:44 pm
Dom Out 15, 2017 1:59 pm
Dom Out 15, 2017 1:42 pm
Dom Out 15, 2017 1:37 pm
Dom Out 15, 2017 1:18 pm
Dom Out 15, 2017 12:44 pm
Dom Out 15, 2017 11:25 am
Dom Out 15, 2017 10:03 am
Dom Out 15, 2017 9:19 am
Dom Out 15, 2017 9:19 am
Dom Out 15, 2017 9:09 am
Dom Out 15, 2017 8:23 am
Dom Out 15, 2017 1:39 am
Sab Out 14, 2017 11:57 pm
Sab Out 14, 2017 11:30 pm
Sab Out 14, 2017 7:07 pm
Sab Out 14, 2017 6:01 pm
Sab Out 14, 2017 5:55 pm
Sab Out 14, 2017 4:25 pm
Sab Out 14, 2017 12:50 pm
Sab Out 14, 2017 12:46 pm
Sex Out 13, 2017 11:58 pm
Sex Out 13, 2017 11:05 pm
Sex Out 13, 2017 9:21 pm
Sex Out 13, 2017 8:27 pm
Sex Out 13, 2017 5:45 pm
Sex Out 13, 2017 5:37 pm
Sex Out 13, 2017 3:31 pm
Sex Out 13, 2017 2:59 pm
Sex Out 13, 2017 2:02 pm
Sex Out 13, 2017 11:17 am
Sex Out 13, 2017 9:27 am
Sex Out 13, 2017 2:17 am
Qui Out 12, 2017 11:57 pm
Qui Out 12, 2017 11:26 pm
Qui Out 12, 2017 11:23 pm
Qui Out 12, 2017 8:32 pm
Qui Out 12, 2017 7:23 pm
Qui Out 12, 2017 2:58 pm
Qui Out 12, 2017 12:51 pm
Qui Out 12, 2017 11:58 am
Qui Out 12, 2017 6:49 am
Qua Out 11, 2017 11:37 pm
Qua Out 11, 2017 10:01 pm
Qua Out 11, 2017 3:52 pm
Qua Out 11, 2017 12:45 pm
Qua Out 11, 2017 12:42 pm
Qua Out 11, 2017 8:38 am
Qua Out 11, 2017 12:31 am
Callyde Jr
rafaelllsd
rafaelllsd
fecirineu
fariscolucas
endersoneneilsa
natanael.olimpio
alxgames
glauco
Callyde Jr
Unidade3d5
WesClaudino
EvertonSantos
BRGC
michelly
Phph09
Phph09
ScorpionG4mer
AndyShow
EvertonSantos
diegopds
gabrielgrk
zZAndersonZz
Fagner
MRX
ScorpionG4mer
Unidade3d5
richerd
Matrirxp
Callyde Jr
colosso16
colosso16
Encracker
Joao07
Callyde Jr
EvertonSantos
EvertonSantos
Ghosthy
felipehobs1
MRX
Callyde Jr
Callyde Jr
Duarte
glauco
luis gustavo
Encracker
thales.ulisses
heliab125
marcelinodns
luis gustavo
Duarte
CodeZone
contaska
contaska
dstaroski
thales.ulisses
Weslley
dimmuo
dstaroski
glauco
dstaroski
Phph09
eusouoglaydson
Weslley
Fagner
alxgames
Fagner
Fagner
MRX
Callyde Jr
Callyde Jr
TrevorCrazy
luizmauro123
Madness
glauco
luiz12345
Fagner
Felipe Costa
Phph09
ubroly
PatifeCraft
dstaroski
Dom3000
raulframos
fecirineu
fecirineu
MateusWTP
Phph09
PatifeCraft
luizmauro123
Duarte
Phph09
dimmuo
EvertonSantos
BRGC
Callyde Jr
fecirineu
PatifeCraft
Dom3000

[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)
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9739
REPUTAÇÃO : 1678
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

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.
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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 ?
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1885
REPUTAÇÃO : 326
Á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
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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.
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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?
avatar
Manawydan
Moderador

PONTOS : 1031
REPUTAÇÃO : 176
Idade : 20
Respeito as regras :

Ver perfil do usuário https://wad.ojooo.com/register.php?ref=ManawydanBr

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.
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 1146
REPUTAÇÃO : 244
Idade : 33
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