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:
Inimigo detecta outro Inimigo.
Instanciar objetos e controla los!!
List
não deixar que exista dois DontDestroyOnLoad
Bug unity android UI
Cronometro par Inimigo como se faz ?
Peso de processamento de modelos 3D
[TUTORIAL] Sistema simples para VOLTAR NO TEMPO, Unity 3D
Passar texturas de Maya para unity
Assets tirando fisica do terreno
teleportar o player quando ele cair fora do mapa
3D Text Material Sobressalente
Passar as texturas do Blender para a Unity
Não consigo alterar "nada" no unity
Erro no SketchUP
Como habilitar um scritpt depois que ele foi desabilitado
Arrastar e conectar
Math Key Puzzle (Disponível na Play Store)
(Duvida) Melhor versão da unity para projetos 3D
Como criar uma Barra de Ataque speed para um personagem
Script não funcionando.
Eixos trocados na movimentação do jogador
Como desenvolver um sistema de colisão sem usar os componentes da Unity?
Collab Arruinando meu Projeto
Oportunidade de Freelancer
Alguém sabe como criar um objeto aleatório
Movimentação de jogador através de animação
Achar objeto que não esta na cena
Chamar um objeto FBX para a cena por meio de um botão
(Dúvida) dificuldade em modelagem e animações
Como faço pra um objeto/item acionar um evento?
Como posso fazer uma barra de vida encher denovo
Textura escura
Animação em texto
Mesh Collider
[FORMAÇÃO DE EQUIPE] PERSONAGENS E ITENS PIXEL ART
Top Tipos de Jogos Mobile Android
Programe seus jogos mesmo sem saber C# (BOLT ⚡)
Dúvida sobre Character Controller
Testadores/ Voluntários - De olho na fake (jogo Educativo)
Ajuda com Cutscene
Ajuda com key em script
BTD(Brazil Tower Defense) WIP
Como criar vários objetos a partir de um? (Unity)
Objeto 3D
Posição bloco/tile endless 2D
Como acessar a função de um outro Script? (Unity)
todo filho herda a tag do pai ?
[TUTORIAL] Como fazer um TELEPORTE
Duvida sobre exceso de declaracao de variaveis publicas.
Como aumentar o tamanho de um objeto no eixo Z por um slider?
Duvida sobre proteção de projeto na unity.
Como jogo o valor de uma Int em uma IEnumerator?
Como faço para desativar o pós-processamento em outra cena
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
Textura no material importado
PHP
Ajuda em Modelo 3D
Como limitar ate onde a câmera do unity2D pode ir?
Standard Assets para UNITY 5 em ".unitypackage"
Como faço pra carregar os itens de uma Cena Para outra?
Joystick mobile
Cenário se reposicionar no eixo z, quando o player se move pelo cenário.
Mudar a cor de um material Alpha Blended por script
como faço para o personagem andar só que no ar?
[TUTORIAL] Teleporte
Ajuda com IA de inimigo
Qual o tutorial mais simples sobre criar um personagem 3d com melee attack?
Colider--Unity
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
Como rodar tela de Gameover?
(Duvida) Como criar um sistema de dialogos?
carregar um mapa por .txt
Como obter dados do Grid Layout Group.
Camera em primeira pessoa que mostra o corpo
Plataforma Flutuante
como faço um multiplayer na unity 5?
SCRIPT TIRO - UNITY 3d
Online Shooting Android
Um projeto sem nome ainda (Fazendo nas horas vagas)
[ FIND ME ] Game em Desenvolvimento
[Projeto em Andamento] Favela Combat - Multiplayer online (Android & iOS)
Baixos Brasil - Jogo de Carro Brasileiro!
Riders Of Dungeons - Jogo RPG Souls like
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
Duvida sobre .asset
Escape from the hospital (Em teste)
Ajuda com gameObject
Ajuda com erro no package de pós-processamento
Shader Graph, mateiral rosa???
FORMACAO DE EQUIPE
Alguem tem script de movimento 2d pronto?
SDK
Unity Banco de Dados
Problema com o Character Controller
Como fazer um game de zumbis de mundo aberto que não seja massante?
como resolver esse bug em um script de troca de personagem?
Alguém me da uma dica de como criar um sistema de chaves
Alguém sabe fazer uma AI para o inimigo seguir o Player em um jogo Top Down
Ontem à(s) 11:06 pm
Ontem à(s) 10:55 am
Dom Abr 11, 2021 3:31 pm
Dom Abr 11, 2021 12:03 am
Sab Abr 10, 2021 7:05 pm
Sab Abr 10, 2021 2:47 pm
Sex Abr 09, 2021 10:11 pm
Sex Abr 09, 2021 5:23 pm
Sex Abr 09, 2021 2:10 pm
Sex Abr 09, 2021 1:21 pm
Qui Abr 08, 2021 8:11 pm
Qui Abr 08, 2021 8:06 pm
Qui Abr 08, 2021 6:50 pm
Qui Abr 08, 2021 6:44 pm
Qui Abr 08, 2021 11:24 am
Qui Abr 08, 2021 11:23 am
Qui Abr 08, 2021 8:17 am
Qua Abr 07, 2021 8:34 pm
Qua Abr 07, 2021 7:39 pm
Qua Abr 07, 2021 5:27 pm
Qua Abr 07, 2021 3:27 pm
Qua Abr 07, 2021 12:03 pm
Qua Abr 07, 2021 8:43 am
Qua Abr 07, 2021 6:27 am
Ter Abr 06, 2021 1:17 pm
Ter Abr 06, 2021 12:44 pm
Ter Abr 06, 2021 12:40 pm
Seg Abr 05, 2021 3:41 pm
Seg Abr 05, 2021 1:19 pm
Dom Abr 04, 2021 11:55 pm
Dom Abr 04, 2021 10:02 pm
Dom Abr 04, 2021 7:03 pm
Dom Abr 04, 2021 5:53 pm
Dom Abr 04, 2021 12:14 pm
Dom Abr 04, 2021 1:06 am
Sab Abr 03, 2021 8:26 pm
Sab Abr 03, 2021 8:06 pm
Sab Abr 03, 2021 7:20 pm
Sab Abr 03, 2021 1:23 pm
Sex Abr 02, 2021 2:14 am
Qui Abr 01, 2021 9:34 pm
Qui Abr 01, 2021 5:18 pm
Qui Abr 01, 2021 4:57 pm
Qui Abr 01, 2021 7:42 am
Qua Mar 31, 2021 9:36 pm
Qua Mar 31, 2021 10:41 am
Ter Mar 30, 2021 8:53 pm
Ter Mar 30, 2021 8:49 pm
Ter Mar 30, 2021 3:10 pm
Ter Mar 30, 2021 1:38 pm
Ter Mar 30, 2021 12:35 pm
Seg Mar 29, 2021 11:07 pm
Seg Mar 29, 2021 8:37 pm
Seg Mar 29, 2021 8:16 pm
Seg Mar 29, 2021 5:32 pm
Seg Mar 29, 2021 1:53 pm
Dom Mar 28, 2021 4:13 pm
Dom Mar 28, 2021 1:19 am
Dom Mar 28, 2021 12:17 am
Sab Mar 27, 2021 10:30 pm
Sab Mar 27, 2021 8:33 pm
Sab Mar 27, 2021 8:06 pm
Sab Mar 27, 2021 2:51 pm
Sab Mar 27, 2021 8:53 am
Sab Mar 27, 2021 8:05 am
Sex Mar 26, 2021 3:15 pm
Sex Mar 26, 2021 12:50 pm
Sex Mar 26, 2021 8:28 am
Sex Mar 26, 2021 7:05 am
Qui Mar 25, 2021 7:16 pm
Qui Mar 25, 2021 7:13 pm
Qui Mar 25, 2021 2:44 pm
Qui Mar 25, 2021 11:20 am
Qui Mar 25, 2021 9:15 am
Qua Mar 24, 2021 7:56 pm
Qua Mar 24, 2021 7:53 pm
Qua Mar 24, 2021 6:54 pm
Qua Mar 24, 2021 1:01 pm
Qua Mar 24, 2021 12:27 pm
Qua Mar 24, 2021 12:04 pm
Qua Mar 24, 2021 12:03 pm
Qua Mar 24, 2021 12:02 pm
Qua Mar 24, 2021 11:59 am
Qua Mar 24, 2021 11:56 am
Qua Mar 24, 2021 10:08 am
Ter Mar 23, 2021 10:35 pm
Ter Mar 23, 2021 9:49 pm
Ter Mar 23, 2021 5:14 pm
Ter Mar 23, 2021 1:59 pm
Ter Mar 23, 2021 10:32 am
Ter Mar 23, 2021 2:29 am
Ter Mar 23, 2021 1:19 am
Seg Mar 22, 2021 6:34 pm
Seg Mar 22, 2021 3:25 pm
Seg Mar 22, 2021 1:33 pm
Seg Mar 22, 2021 10:10 am
Dom Mar 21, 2021 9:25 pm
Dom Mar 21, 2021 8:27 pm
Dom Mar 21, 2021 10:48 am
hellside
dutrabr100
Kleber Lucas
diegopds
poyser
dutrabr100
ronigleydson
Chilinger
ffabim
tendrozino
gui78h3
MRX
Magnatah
Magnatah
Edivandro2706
Kleber Lucas
Pokedlg
poyser
poyser
kingalphaz1
BrunaFelicio
backup
dutrabr100
conceptfac
Chilinger
luizphelipe
dutrabr100
dutrabr100
SauloeArthur
poyser
Triskal
luizphelipe
darkrj
dutrabr100
Anderson Mello
tulio filipe
rr indie games
Triskal
rr indie games
danielPedra90
Triskal
Triskal
rr indie games
PauloR2811
diegopds
LGC
Pokedlg
adenilson romao
Triskal
rr indie games
Fagner
loucoporjogo
rafaelllsd
Charlesoff
michelcreis@hotmail.com
Edivandro2706
Fagner
adrianobros2
Sergio1223
Zyll
Triskal
RGT2020
dutrabr100
jeancvo3
dkdetroi
Triskal
Charlesoff
dutrabr100
Fagner
dutrabr100
SamusAran
MayLeone
gui78h3
loucoporjogo
RGT
RGT
RGT
faustommat
Daniel Dória
bobESquisito
bobESquisito
bobESquisito
bobESquisito
bobESquisito
michelcreis@hotmail.com
Suphit
bobESquisito
Pokedlg
Charlesoff
Mafuyu
lordstrik
Fagner
Brian Victor
SgtMatuto
rene3768
dutrabr100
Note
Charlesoff
luizphelipe

Dropdown e comparação com String

Ir em 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 : 327
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Voltar ao Topo Ir em 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 : 2736
REPUTAÇÃO : 514
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Voltar ao Topo Ir em 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 : 327
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Voltar ao Topo Ir em 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 : 2736
REPUTAÇÃO : 514
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Voltar ao Topo Ir em 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 : 327
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Voltar ao Topo Ir em 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 : 2736
REPUTAÇÃO : 514
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras : Dropdown e comparação com String Aad8pUi

Voltar ao Topo Ir em 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 : 327
REPUTAÇÃO : 0
Respeito as regras : Dropdown e comparação com String WvDYdlf

Voltar ao Topo Ir em baixo

Voltar ao Topo


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