Entrar
Últimos assuntos
» Colisões não funcionandopor RastaMaan Sex 26 Abr 2024, 19:49
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 16:45
» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18
» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
[resolvido] print() com preguiça
2 participantes
GMBR :: Ensine & Aprenda :: Perguntas e Respostas :: Unity
Página 1 de 1
[resolvido] print() com preguiça
Eu vou mostrar o código todo, porque o problema pode estar em qualquer lugar. Mas a linha que eu quero que funcione é a 52: "print(guarda[i, j].transform.GetComponent().minhavar);"
Era pra essa linha dar 81 saídas, mas estava dando apenas 4.
Enquanto escrevia, esse tópico, fiz um teste e troquei a linha por algo parecido, que está como comentário na linha anterior:
print(i + "; " + j + ": " + guarda[i, j].transform.GetComponent().minhavar);
O plano era mostrar em quais valores de i e j a linha era executada, mas por algum motivo, isso resolveu o problema e todas as 81 vezes foram mostradas.
Na prática, esse tópico existe só pra saciar minha curiosidade, porque mostrar essa informação não vai fazer a menor diferença no jogo. Mas porque uma das linhas é mostrada nas 81 vezes em que chamo o código e a outra em apenas em 4 delas? Caso seja relevante, verifiquei e todos os objetos "guarda" estão com a variável definida.
Era pra essa linha dar 81 saídas, mas estava dando apenas 4.
Enquanto escrevia, esse tópico, fiz um teste e troquei a linha por algo parecido, que está como comentário na linha anterior:
print(i + "; " + j + ": " + guarda[i, j].transform.GetComponent().minhavar);
O plano era mostrar em quais valores de i e j a linha era executada, mas por algum motivo, isso resolveu o problema e todas as 81 vezes foram mostradas.
Na prática, esse tópico existe só pra saciar minha curiosidade, porque mostrar essa informação não vai fazer a menor diferença no jogo. Mas porque uma das linhas é mostrada nas 81 vezes em que chamo o código e a outra em apenas em 4 delas? Caso seja relevante, verifiquei e todos os objetos "guarda" estão com a variável definida.
- Código todo:
- Código:
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using System.Linq;
using System.Runtime.InteropServices;
public class Inicializa : MonoBehaviour
{
public GameObject casatab1;
public Material material1;
public GameObject[] letrinhas = new GameObject[4];
//Essas variáveis serão definidas dentro do Unity
void Start()
{
float xx, yy, size;
int ncol, nlin, i, j;
Material material2 = Resources.Load<Material>("Materials/PretoSprite"); // carrega o material PretoSprite, que está na pasta Resources/Materials - só pra saber como carregar via código
// coloca as casas no tabuleiro
ncol = 9; nlin = 9; // número de colunas e linhas
size = 0.64f;
GameObject[,] guarda = new GameObject[nlin, ncol];
List<string> listapedras = new List<string>();
listapedras = primeiralista();
for(i = 0; i < nlin; i++)
{
for (j = 0; j < ncol; j++)
{
xx = (-4.0f + j) * size;
yy = (-4.0f + i) * size;
Vector3 posCria = new Vector3(xx, yy, 0);
guarda[i, j] = Instantiate(casatab1, posCria, Quaternion.identity); // guarda a instância gerada numa variável
guarda[i, j].transform.GetComponent<Testavar>().minhavar = listapedras[0];
posCria = new Vector3(xx, yy, -0.5f);
/*switch(listapedras[0])
{
case "A": Instantiate(letrinhas[0], posCria, Quaternion.identity); break;
case "D": Instantiate(letrinhas[1], posCria, Quaternion.identity); break;
case "M": Instantiate(letrinhas[2], posCria, Quaternion.identity); break;
case "V": Instantiate(letrinhas[3], posCria, Quaternion.identity); break;
}*/
listapedras.RemoveAt(0);
if ((i + j) % 2 == 0)
{
guarda[i, j].transform.GetComponent<Renderer>().material = material1;
}
else
{
guarda[i, j].transform.GetComponent<Renderer>().material = material2;
}
//print(i + "; " + j + ": " + guarda[i, j].transform.GetComponent<Testavar>().minhavar);
print(guarda[i, j].transform.GetComponent<Testavar>().minhavar);
}
}
//print(listapedras.Count);
}
public List<string> primeiralista()
{
// retorna uma lista alimentada com as strings "A", "D", "M" e "V", embaralhada
List<string> listaorganizada = new List<string>();
List<string> listaembaralhada = new List<string>();
int i;
for (i = 0; i < 25; i++)
{
listaorganizada.Add("A");
listaorganizada.Add("D");
listaorganizada.Add("M");
listaorganizada.Add("V");
}
listaembaralhada = embaralha(listaorganizada);
/*foreach(string letr in listaembaralhada)
{
print(letr);
}*/
return listaembaralhada;
}
public List<string> embaralha(List<string> listaentra)
{
// embaralha uma lista de strings e retorna a lista embaralhada
int i;
List<string> listasai = new List<string>();
while (listaentra.Count > 0)
{
i = Random.Range(0, listaentra.Count); // índice aleatório de zero ao tamanho da lista
listasai.Add(listaentra[i]); // coloca o valor elemento i na sequencia da nova lista
listaentra.RemoveAt(i); // remove o elemento i, reduzindo a lista original
}
return listasai;
}
/*public List<string> embaralha(List<string> listaParaEmbaralhar)
{
return listaParaEmbaralhar.OrderBy(a => Guid.NewGuid()).ToList();
}*/
}
Última edição por saim em Seg 21 Set 2020, 16:20, editado 1 vez(es)
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
Re: [resolvido] print() com preguiça
Só olhando o código, e pelo que tu disse, não vi porque somente a mudança do print ali iria ocasionar apenas printar 4 vezes ou 81, se na de 4 não deu qualquer erro.
Então eu só consegui pensar que talvez a que deu 4 vezes, no console ele poderia estar juntando(collapse on) as saídas com o mesmo resultado.
Ah, eu acho que nunca usei o print no c#/Unity hehe, sempre uso o Debug.Log(), ou esse print é algum método que tu criou com algum outro comporamento?
Então eu só consegui pensar que talvez a que deu 4 vezes, no console ele poderia estar juntando(collapse on) as saídas com o mesmo resultado.
Ah, eu acho que nunca usei o print no c#/Unity hehe, sempre uso o Debug.Log(), ou esse print é algum método que tu criou com algum outro comporamento?
Re: [resolvido] print() com preguiça
Nunca ouvi falar em "collapse on", mas faz pleno sentido, já que nenhuma das 4 saídas vem repetida... pode ser isso! Como faço um "collapse off"?
[Edit]Achei aqui! Era isso mesmo!!! Valeu pela dica!
E print(), pelo que entendi, é exatamente igual ao Debug.Log(). É que meu professor usa print(), talvez por ser mais fácil de escrever, aí eu aprendi foi esse comando (que vem com o MonoBehaviour, então pra usar, a classe tem que ser filha dele).
Depois, resolvendo problemas pela internet, acabei conhecendo esse Debug.Log(), mas aí, já tinha pego a mania.
[Edit]Achei aqui! Era isso mesmo!!! Valeu pela dica!
E print(), pelo que entendi, é exatamente igual ao Debug.Log(). É que meu professor usa print(), talvez por ser mais fácil de escrever, aí eu aprendi foi esse comando (que vem com o MonoBehaviour, então pra usar, a classe tem que ser filha dele).
Depois, resolvendo problemas pela internet, acabei conhecendo esse Debug.Log(), mas aí, já tinha pego a mania.
saim- Games Ranking :
Notas recebidas : C-D-A-B
Data de inscrição : 14/01/2011
Reputação : 136
Número de Mensagens : 3033
Prêmios :
x 1 x 6 x 0
x 1 x 0 x 3
x 0 x 0 x 0
theguitarmester gosta desta mensagem
Tópicos semelhantes
» [Sugestão] Acabar com a preguiça dos novatos
» Bolas em ação [AGORA NÃO TENHO MAIS PREGUIÇA DE FAZER]
» Print do seu Desktop
» [Script] print
» [?]Salvar um print screen com o GM
» Bolas em ação [AGORA NÃO TENHO MAIS PREGUIÇA DE FAZER]
» Print do seu Desktop
» [Script] print
» [?]Salvar um print screen com o GM
GMBR :: Ensine & Aprenda :: Perguntas e Respostas :: Unity
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|