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:
GetKeyUp ativando sozinho
Posso controlar o wheelsCollider.rpm?
Como resolver problema da mesh não renderizar após fazer a build
RANDOMIZAR ATAQUES
[TUTORIAL] Escolher a quantos FPS (fixos) o seu jogo deverá rodar.
Pontuação na tela de Game Over
Personagem dentro da agua
[Resolvido]Sript de pegar itens no cenario
[TUTORIAL] Campo de visão dos inimigos (Enemy FOV) com Raycast ou OverlapSphere
Fazer o Player colar em uma base redonda
tem como altera o nome no forum
Como detectar se teclado ou controle foi conectado???
erro NO MONOBEHAVIOUR SCRIPTS IN THE FILE
Seleção de Personagem
[ASSET PACKAGE] Game Check Update
Adicionar mais um ataque ao inimigo.
Como faço para Camera ignorar um objeto?
Segundo Teaser do meu novo jogo galera, Sanatório Macabro. Em breve
[RESOLVIDO] VSCode não mostra erros nem identa o Código
Funcionalidades Unity
Baixem meu jogo O Labirinto v1.25 completo e gratuito
Player girando e animação não executa
[RESOLVIDO] Problema com C# e Rigidbody
[RESOLVIDO] Recarregar arma.
Como acessar o Smoothness das texturas do terrain
Sistema de Tiro com Raycast
Velocidade com Button UI.
ERRO AO UPAR NA GOOGLE PLAY STORE
me ajuda por favor
Animaçoes não executa, nem a IDLE
Mini-Map
[TUTORIAL] Como o C# funciona
A Imagem do Objeto não muda
Animaçoes nao executa mais, nem a Idle
[RESOLVIDO] Como usar um Botao(GameObject) igual a um Botao(UI) no Mobile
Sistema de Tiro com Raycast
Algum modelador bom? Compro Modelagem
[RESOLVIDO] Rotação invertida, como resolvo isso??
carregamento de dados entre cenas
Blender bugado ????
AUDIO EM UM DETERMINADO MOMENTO
Dúvida sobre modificação do Event Trigger por scritpt
Carro dá spawn no ar
U2019 - Animações e efeitos após jogador levar hit? por outro jogador?
Não consigo Desabilitar um efeito especifico no pós processamento...
Como Desativar e mudar qualidade de sombra por código???
[TUTORIAL] Primeiro programa "complexo" em C# para iniciantes
Eu estou com dúvida de como instalar a unity com Unity Hub
Pulo "muito Alto"
rotação e aceleração.
Movimentação mobile.
Ativar botão
De Blender pra Unity - Cell Fracture não funciona!
sugestões de otimização?
Carregamento com porcentagem...
[RESOLVIDO] Blender Cell Fracture não aparece no Add-ons - Ajuda!
Movimentação - rotação
Erro Codigo de movimentação.
Cronometro 3,2,1 fica bugado ajuda aee...
[Problema] Ativo o Animator e o boneco não sai do lugar
Morre pausa e aparece botao pra reiniciar mas reinicia o jogo pausado
Script de movimentação e câmera não executa corretamente
FBX não gera sombra
[TUTORIAL] Mostrar Data e Hora atual do Computador em um texto
Sketchup pede para aumentar o projeto
Mudar cor da faixa de texto.
Mexer em variavel de objeto instanciado
Como utilizar o design pattern MVC na Unity?
[RESOLVIDO] RIGIDYBODY tá pulando sozinho pra longe. O que pode ser?
[RESOLVIDO] Compatibilidade e travamentos - unity android
Alguem sabe um meio pra fazer um habitat com criaturas?
[RESOLVIDO] Ajuda com script simples
[RESOLVIDO] Como trocar uma imagem ao clicar num botão em unity c#
[RESOLVIDO] Ponto A ao Ponto B em um determinado tempo
[RESOLVIDO] Duvida Unity (C#)
[RESOLVIDO] Bug no tittle screen
[RESOLVIDO] Erro CS0122
Projeto em desenvolvimento Yoda Runner.
[RESOLVIDO] Duvida Unity (C#)
Duvida com inimigo
Problemas com a colisão do unity
Carros não ficam no chão
Troca de Nivel
[TUTORIAL] Wheel Collider - como configurar corretamente.
Movimentação em SQM Unity 2D
Movimentaçao por SQM / UNITY 2D
[ FIND ME ] Game em Desenvolvimento
Como fazer um sistema de waypoints com espera.
Duvida de como usar varias imagens para cria um obj em 3d
Como usar botao voltar do celular?
Erro no SketchUP
Unity - Ludo usando Grafos, mas sem sucesso
Limite de rotação...
Impedir o toque em uma região da tela
Modelo Singletoon no Unity 2019
steamworks bundle com outros desenvolvedores
[TUTORIAL] Unity 3D - Dependências de compilação
JOGO "CHALLENGE" BETA
[RESOLVIDO] Teclas não funciona
Hoje à(s) 2:28 pm
Hoje à(s) 9:36 am
Ontem à(s) 11:12 am
Ontem à(s) 10:37 am
Ontem à(s) 1:20 am
Seg Jul 26, 2021 1:31 pm
Dom Jul 25, 2021 11:12 pm
Dom Jul 25, 2021 10:51 pm
Dom Jul 25, 2021 6:16 pm
Dom Jul 25, 2021 4:03 pm
Dom Jul 25, 2021 12:39 pm
Sab Jul 24, 2021 11:02 pm
Sab Jul 24, 2021 9:35 pm
Sab Jul 24, 2021 12:11 pm
Sab Jul 24, 2021 3:55 am
Sex Jul 23, 2021 4:02 pm
Sex Jul 23, 2021 2:26 pm
Sex Jul 23, 2021 11:50 am
Qui Jul 22, 2021 8:08 pm
Qui Jul 22, 2021 6:06 pm
Qui Jul 22, 2021 3:38 pm
Qui Jul 22, 2021 3:00 pm
Qui Jul 22, 2021 10:47 am
Qua Jul 21, 2021 6:09 pm
Qua Jul 21, 2021 6:07 pm
Qua Jul 21, 2021 3:41 pm
Qua Jul 21, 2021 5:00 am
Qua Jul 21, 2021 12:30 am
Ter Jul 20, 2021 7:17 pm
Ter Jul 20, 2021 1:21 pm
Ter Jul 20, 2021 10:24 am
Ter Jul 20, 2021 8:27 am
Ter Jul 20, 2021 6:23 am
Ter Jul 20, 2021 6:09 am
Seg Jul 19, 2021 9:06 pm
Seg Jul 19, 2021 9:09 am
Seg Jul 19, 2021 12:22 am
Dom Jul 18, 2021 11:20 pm
Dom Jul 18, 2021 9:10 pm
Dom Jul 18, 2021 2:55 pm
Dom Jul 18, 2021 11:17 am
Sab Jul 17, 2021 11:10 pm
Sab Jul 17, 2021 11:00 pm
Sab Jul 17, 2021 10:49 pm
Sab Jul 17, 2021 10:38 pm
Sab Jul 17, 2021 7:53 pm
Sab Jul 17, 2021 11:20 am
Sab Jul 17, 2021 11:12 am
Sab Jul 17, 2021 6:52 am
Sab Jul 17, 2021 6:39 am
Sab Jul 17, 2021 6:32 am
Sab Jul 17, 2021 6:28 am
Sab Jul 17, 2021 1:16 am
Sex Jul 16, 2021 7:29 pm
Sex Jul 16, 2021 5:40 pm
Sex Jul 16, 2021 5:02 pm
Sex Jul 16, 2021 12:49 pm
Sex Jul 16, 2021 9:25 am
Sex Jul 16, 2021 12:20 am
Qui Jul 15, 2021 6:16 pm
Qui Jul 15, 2021 5:06 pm
Qua Jul 14, 2021 5:59 pm
Qua Jul 14, 2021 5:35 pm
Qua Jul 14, 2021 11:02 am
Seg Jul 12, 2021 9:27 pm
Seg Jul 12, 2021 12:13 pm
Dom Jul 11, 2021 11:08 pm
Dom Jul 11, 2021 10:30 pm
Dom Jul 11, 2021 7:13 pm
Sab Jul 10, 2021 7:05 pm
Sab Jul 10, 2021 10:05 am
Sex Jul 09, 2021 2:51 pm
Qui Jul 08, 2021 7:36 pm
Qui Jul 08, 2021 7:13 pm
Qui Jul 08, 2021 1:53 pm
Qui Jul 08, 2021 1:14 pm
Qui Jul 08, 2021 12:59 pm
Qua Jul 07, 2021 11:48 pm
Qua Jul 07, 2021 10:13 pm
Qua Jul 07, 2021 2:14 pm
Ter Jul 06, 2021 7:51 pm
Ter Jul 06, 2021 1:30 pm
Ter Jul 06, 2021 8:38 am
Seg Jul 05, 2021 1:17 am
Sab Jul 03, 2021 12:36 pm
Sab Jul 03, 2021 2:29 am
Sex Jul 02, 2021 11:12 pm
Sex Jul 02, 2021 1:56 pm
Sex Jul 02, 2021 10:29 am
Qui Jul 01, 2021 12:59 am
Ter Jun 29, 2021 9:30 pm
Ter Jun 29, 2021 1:38 am
Seg Jun 28, 2021 6:55 pm
Seg Jun 28, 2021 6:13 pm
Seg Jun 28, 2021 4:27 pm
Seg Jun 28, 2021 9:39 am
Dom Jun 27, 2021 4:49 pm
Sab Jun 26, 2021 3:49 pm
Sab Jun 26, 2021 12:57 pm
dutrabr100
Fagner
Crash Psycho
stratengine
danilojpbr212
Charlesoff
Pokedlg
kaiquecachoeira1
VitinRuas
Lester202123
bruno92
Fagner
aikow
Pokedlg
FelipeSouza11
ViniciusTKH
Charlesoff
Patrick
WLCS22
Vinicius.Oliveira
jeancvo3
MarcosSchultz
amanda.ilg
LucasBR
jeancvo3
SauloeArthur
PauloFR
JoelMJunior
cleitinhoRasta
jhonih00010
PauloFR
PauloFR
PauloFR
PauloFR
crazylagg
Valério
jhonih00010
jhonih00010
PauloFR
Crash Psycho
edu63
PauloFR
PauloFR
PauloFR
PauloFR
Fagner
PauloFR
Franttyck
PauloFR
PauloFR
PauloFR
PauloFR
WLCS22
Morpheus
jhonih00010
WLCS22
Fagner
NKKF
jhonih00010
MatheusTD
MarcosSchultz
Magnatah
Magnatah
Fagner
Charlesoff
MayLeone
MayLeone
MayLeone
RodrigoPrivilegium
Fagner
ProBrStalker
ronigleydson
a32515
RobsonRAS
VittorTGame23
brunera
patriicia
ffabim
VittorTGame23
jeancvo3
Fagner
Fagner
Pokedlg
Fagner
Shiimo
Valmi
Crash Psycho
Fagner
crazylagg
Fagner
Edivandro2706
WLCS22
Magnatah
acefogo
Fagner
diegopds
MarcosSchultz
lauderson
Esteban

Dropdown e comparação com String

Ir para baixo

DÚVIDA Dropdown e comparação com String

Mensagem por Inequalis Qua Dez 23, 2020 10:18 am

Olá!
Tenho uma dúvida relacionada a comparação de Strings (É algo que parece ser simples, mas o comportamento na Unity é bizarro).
Essa variável RefreshRate é definida no inicio do script e populada na seguinte função (Essa função é chamada la no Awake, para preencher de forma dinâmica, outro Dropdown):
Código:
public void SetResolutionsDropDown() {
        Resolution[] Resolutions = Screen.resolutions;
        for (int i = 0; i < Resolutions.Length; i++) {
            if (Resolutions[i].width >= 1280 && Resolutions[i].width >= 720) {
                string ResolutionFormatted = Resolutions[i].width + "x" + Resolutions[i].height;
                if (RefreshRate == null) {
                    RefreshRate = Resolutions[i].refreshRate.ToString();
                }
                if (!ResolutionOptions.Contains(ResolutionFormatted)) {
                    ResolutionOptions.Add(ResolutionFormatted);
                }
            }
            Resolution.ClearOptions();
            Resolution.AddOptions(ResolutionOptions);
        }
    }

Logo abaixo, tenho uma função para fazer a mesma coisa, mas para outro Dropdown (Que também é chamada no Awake, logo abaixo da função anterior).
RefreshRateOptions é um list de string, definido no inicio do script:
Código:
public void SetFrameRateDropDown() {
        if (RefreshRate != null) {
            if(RefreshRate == "75") {
                RefreshRateOptions.Insert(0, "30 Hz");
                RefreshRateOptions.Insert(1, "60 Hz");
                RefreshRateOptions.Insert(2, "75 Hz");
            }         
            FPS.ClearOptions();
            FPS.AddOptions(RefreshRateOptions);
        }
    }

A questão aqui é o comportamento desse Dropdown. No play da Unity, ele carrega essas opções corretamente.
Agora, quando buildo o projeto e testo, o Dropdown carrega vazio, sem nenhuma opção.
Alguém tem alguma idéia do por que esse comportamento inconsistente?
A comparação desse if do RefreshRate retorna false, pois em um teste onde removi esse if, carregou certo.
O mistério é: Por que retorna true no Play da Unity, e false quando faço o build do projeto?
Grato pela atenção!

Inequalis
Iniciante
Iniciante

PONTOS : 433
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Fagner Qua Dez 23, 2020 11:12 am

Porque você está comparando se a largura é maior que 1280 e se largura maior que 720? não bastaria checar se Altura >= 720?
Acho que você se confundiu aí.
Recomendo sempre fazer esse tipo de checagem usando o Height, pois a altura é bem padrão, já a largura varia bastante por conta de monitores wide/ultra wide/curved.

O comportamento é diferente na Unity, pois nela é mostrado apenas as resoluções da frequência atual, já na build, mostra todas disponíveis, inclusive as que tenham uma frequência diferente, digamos que seu monitor suporta a resolução 1280x720 em 60 e 75Hz, ambas serão mostradas no dropdown, parecendo que está duplicada, a string não faz referência que uma é 60 e outra 75Hz.

Sobre o segundo código, preciso saber como você está obtendo o "RefreshRate"(esse que você checa se não é nulo no if).
Fagner
Fagner
Moderador

Masculino PONTOS : 3063
REPUTAÇÃO : 597
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Inequalis Qua Dez 23, 2020 1:45 pm

@Fagner escreveu:Porque você está comparando se a largura é maior que 1280 e se largura maior que 720? não bastaria checar se Altura >= 720?
Acho que você se confundiu aí.
Recomendo sempre fazer esse tipo de checagem usando o Height, pois a altura é bem padrão, já a largura varia bastante por conta de monitores wide/ultra wide/curved.

O comportamento é diferente na Unity, pois nela é mostrado apenas as resoluções da frequência atual, já na build, mostra todas disponíveis, inclusive as que tenham uma frequência diferente, digamos que seu monitor suporta a resolução 1280x720 em 60 e 75Hz, ambas serão mostradas no dropdown, parecendo que está duplicada, a string não faz referência que uma é 60 e outra 75Hz.

Sobre o segundo código, preciso saber como você está obtendo o "RefreshRate"(esse que você checa se não é nulo no if).

Força do habito mesmo, poderia de fato fazer da forma que citou. Mas isso, só impacta no que vai ser listado no Dropdown (Não quero que liste resolução abaixo de 1280x720). Então, pode ignorar essa parte. 
RefreshRate, no meu caso retorna 75 (que é a taxa de atualização máxima do meu monitor). Nesse if, tenho 75 sendo comparado com 75, retornando false no build e true no Play da Unity. Essa variável é populada na função anterior aqui:

Código:
if (RefreshRate == null) {[size=14][/size]                    RefreshRate = Resolutions[i].refreshRate.ToString();[size=14][/size]                }

A parte que está dando esse problema:
Código:
if(RefreshRate == "75") {[size=14][/size]                RefreshRateOptions.Insert(0, "30 Hz");[size=14][/size]                RefreshRateOptions.Insert(1, "60 Hz");[size=14][/size]                RefreshRateOptions.Insert(2, "75 Hz");[size=14][/size]            }

No caso, o RefreshRate da build estaria retornando 60? Se entendi corretamente, isso poderia explicar essa diferença. Achei que o .refreshRate retornava a taxa de atualização máxima do monitor.

Inequalis
Iniciante
Iniciante

PONTOS : 433
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Fagner Qua Dez 23, 2020 3:38 pm

Você está percorrendo o for checando se a resolução é maior que 720p, se for e se RefreshRate for null, você joga um valor em RefreshRate e ele deixa de ser nulo.
O problema é que esse array de resoluções tem resoluções duplicadas por conta do refreshRate diferente, mas a de 60 quase sempre é listada primeiro.
Então no RefreshRate recebe 60 e nunca vai entrar no outro IF, pois pra isso ele teria que ser 75, fazendo o dropdown ficar vazio...
Eu preencheria por padrão o 30 e o 60, antes do IF, e apenas deixaria o 75 se ele tivesse uma resolução suportada que batesse com a resolução utilizada no monitor atual.
Exemplo: meu monitor é 1920x1080, mas ele suporta algumas resoluções mais baixas a 75hz, então se eu estiver a 1080, não faz sentido liberar o 75Hz pois meu monitor não está na resolução que ele dá suporte a 75.
Enfim, eu repensaria essa lógica direito, de modo a só incluir o suporte a 75+ se o modo atual estiver usando 75.
Fagner
Fagner
Moderador

Masculino PONTOS : 3063
REPUTAÇÃO : 597
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Inequalis Qua Dez 23, 2020 4:23 pm

@Fagner escreveu:Você está percorrendo o for checando se a resolução é maior que 720p, se for e se RefreshRate for null, você joga um valor em RefreshRate e ele deixa de ser nulo.
O problema é que esse array de resoluções tem resoluções duplicadas por conta do refreshRate diferente, mas a de 60 quase sempre é listada primeiro.
Então no RefreshRate recebe 60 e nunca vai entrar no outro IF, pois pra isso ele teria que ser 75, fazendo o dropdown ficar vazio...
Eu preencheria por padrão o 30 e o 60, antes do IF, e apenas deixaria o 75 se ele tivesse uma resolução suportada que batesse com a resolução utilizada no monitor atual.
Exemplo: meu monitor é 1920x1080, mas ele suporta algumas resoluções mais baixas a 75hz, então se eu estiver a 1080, não faz sentido liberar o 75Hz pois meu monitor não está na resolução que ele dá suporte a 75.
Enfim, eu repensaria essa lógica direito, de modo a só incluir o suporte a 75+ se o modo atual estiver usando 75.

Entendo. Se eu fizer um if do tipo:

Código:
if(RefreshRate == "60") {
  // Adiciona as options aqui.
}

Ele deveria preencher o Dropdown? Eu entendi exatamente a sua explicação, mas tenho duvidas a qual valor é atribuído ao RefreshRate.

Inequalis
Iniciante
Iniciante

PONTOS : 433
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Fagner Qua Dez 23, 2020 4:30 pm

Sim, fazendo esse IF resolve.
O valor atribuído pode ser qualquer um, na maioria das vezes é o 60, mas as vezes pode ser 75, depende de como o sistema reconhece as resoluções ou como o fabricante listou elas na bios. Resumindo, você não tem como ter 100% de certeza sobre qual vai aparecer primeiro no seu for, o que você pode fazer é ir checando se o próximo refresh rate do For é maior que o atual, ao invés de checar por null, isso se o interesse for pegar a maior taxa de HZ.

Só um complemento:
Suportar 75Hz != Usar 75Hz;
Se seu monitor suporta 75 mas está usando 60, definir no game o Vsync a 75 não vai fazer o monitor exibir 75 frames por segundo, o jogo vai rodar a 75 dropando 15 frames, causando tearing.
Esse tipo de configuração precisa ser feita pelo usuário nas configurações do sistema/monitor.
Fagner
Fagner
Moderador

Masculino PONTOS : 3063
REPUTAÇÃO : 597
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Ir para o topo Ir para baixo

DÚVIDA Re: Dropdown e comparação com String

Mensagem por Inequalis Qua Dez 23, 2020 4:50 pm

@Fagner escreveu:Sim, fazendo esse IF resolve.
O valor atribuído pode ser qualquer um, na maioria das vezes é o 60, mas as vezes pode ser 75, depende de como o sistema reconhece as resoluções ou como o fabricante listou elas na bios. Resumindo, você não tem como ter 100% de certeza sobre qual vai aparecer primeiro no seu for, o que você pode fazer é ir checando se o próximo refresh rate do For é maior que o atual, ao invés de checar por null, isso se o interesse for pegar a maior taxa de HZ.

Poxa, essa "diferença" do Play para a Build final da Unity, literalmente me matou haha
Fiz um teste prático aqui e procede essa informação que me passou:
Dropdown e comparação com String FPS
Peguei algumas "Resoluções" do List e mostrei na tela o refreshRate delas. Só um adendo: 
Não é fixo, tem umas variações como é possível ver pela img. Vou seguir na correção disso ai.
Valeu ai mesmo pelo auxílio!

Inequalis
Iniciante
Iniciante

PONTOS : 433
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Ir para o topo Ir para baixo

Ir para o topo


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