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
Ontem à(s) 2:41 pm Ter maio 30, 2023 7:28 pm Ter maio 30, 2023 6:04 am Seg maio 29, 2023 7:53 pm Sáb maio 27, 2023 3:11 pm Sex maio 26, 2023 4:59 pm Sex maio 26, 2023 11:27 am Qui maio 25, 2023 10:33 am Sáb maio 20, 2023 12:25 pm Ter maio 16, 2023 5:43 pm Ter maio 16, 2023 5:42 pm Ter maio 09, 2023 7:42 pm Seg maio 08, 2023 7:13 am Seg maio 08, 2023 6:38 am Seg maio 08, 2023 1:49 am Sáb maio 06, 2023 11:44 pm Sáb maio 06, 2023 6:42 pm Sáb maio 06, 2023 1:35 am Qua maio 03, 2023 12:32 pm Seg maio 01, 2023 8:51 pm Seg maio 01, 2023 12:29 pm Dom Abr 30, 2023 8:49 pm Dom Abr 30, 2023 5:06 pm Sáb Abr 29, 2023 4:05 pm Qui Abr 27, 2023 4:39 pm Qui Abr 27, 2023 12:40 am Ter Abr 25, 2023 5:33 pm Ter Abr 25, 2023 10:23 am Dom Abr 23, 2023 12:11 am Sáb Abr 22, 2023 4:27 am Sex Abr 21, 2023 11:38 pm Sex Abr 21, 2023 10:21 pm Qui Abr 20, 2023 4:57 pm Qui Abr 20, 2023 12:28 pm Qua Abr 19, 2023 3:03 pm Qua Abr 19, 2023 1:52 pm Qua Abr 19, 2023 11:59 am Qua Abr 19, 2023 11:54 am Sáb Abr 15, 2023 8:13 pm Sex Abr 14, 2023 7:43 am Qui Abr 13, 2023 4:36 pm Qui Abr 13, 2023 4:36 pm Qua Abr 12, 2023 6:05 pm Ter Abr 11, 2023 6:22 pm Seg Abr 10, 2023 7:33 pm Seg Abr 10, 2023 3:25 pm Dom Abr 09, 2023 8:53 pm Dom Abr 09, 2023 7:26 pm Dom Abr 09, 2023 5:59 pm Dom Abr 09, 2023 12:06 am Sex Abr 07, 2023 7:24 pm Qui Abr 06, 2023 6:45 am Qua Abr 05, 2023 9:24 am Ter Abr 04, 2023 4:55 pm Ter Abr 04, 2023 1:00 pm Dom Abr 02, 2023 11:52 pm Sex Mar 31, 2023 12:50 pm Sex Mar 31, 2023 11:03 am Sex Mar 31, 2023 10:05 am Qua Mar 29, 2023 7:48 pm Ter Mar 28, 2023 10:50 pm Ter Mar 28, 2023 9:19 am Seg Mar 27, 2023 10:16 am Dom Mar 26, 2023 7:39 pm Qui Mar 23, 2023 4:52 pm Ter Mar 21, 2023 11:20 pm Ter Mar 21, 2023 8:52 pm Sáb Mar 18, 2023 8:41 pm Sex Mar 17, 2023 3:12 pm Sex Mar 17, 2023 1:24 pm Seg Mar 13, 2023 10:45 pm Seg Mar 13, 2023 9:48 pm Seg Mar 13, 2023 8:24 pm Seg Mar 13, 2023 7:17 pm Dom Mar 12, 2023 10:27 pm Dom Mar 12, 2023 7:22 pm Sex Mar 10, 2023 8:26 pm Sex Mar 10, 2023 8:00 pm Qui Mar 09, 2023 9:05 am Ter Mar 07, 2023 2:27 pm Sex Mar 03, 2023 6:47 pm Sex Mar 03, 2023 12:01 am Qui Mar 02, 2023 4:00 pm Qui Mar 02, 2023 1:35 pm Qua Mar 01, 2023 5:47 pm Qua Mar 01, 2023 2:11 am Seg Fev 27, 2023 11:08 pm Seg Fev 27, 2023 7:19 pm Dom Fev 26, 2023 11:49 pm Dom Fev 26, 2023 8:29 pm Dom Fev 26, 2023 7:47 pm Dom Fev 26, 2023 7:46 pm Dom Fev 26, 2023 6:08 pm Sáb Fev 25, 2023 8:16 pm Seg Fev 13, 2023 7:02 pm Seg Fev 13, 2023 2:44 am Dom Fev 12, 2023 9:57 pm Dom Fev 12, 2023 2:19 pm Sáb Fev 11, 2023 1:01 pm
Boa tarde, encontrei esse script que implementa "drag and drop" para a Unity. Nesta página, adaptei o exemplo "ImageExemple.cs" para meu projeto. Porém venho tendo dificuldades com a detecção do ponto correto aonde a imagem é largada em cima da janela. No meu caso, criei um objeto vazio de UI apenas com um RecTransform e o script de drag and drop, mas não consigo fazer com que esse rect seja a representação correta do lugar aonde a imagem deve ser largada. Se eu largo o arquivo por cima dele na build, nada acontece, o ponto de detecção está totalmente errado e eu não estou conseguindo descobrir o que fazer para que ele considere a posição correta do rect em tela. Segue a minha versão adaptada do código de exemplo do autor (os Debug.LogError são para que eu consiga visualizar o que acontece na build, visto que o script não funciona via editor):
Código:
protected void LoadImage(DropInfo aInfo) { if (aInfo == null) { Debug.LogError("Information is null!!"); return; } Debug.LogError("Rect pos is " + dropRect.position); Debug.LogError("Rect transform pos is " + rectTransform.position); Debug.LogError("aInfo is " + aInfo.pos);
if (dropRect.Contains(aInfo.pos)) { var data = System.IO.File.ReadAllBytes(aInfo.file); var tex = new Texture2D(1, 1); tex.LoadImage(data); onTextureUpdate(tex); Debug.LogError("Information is valid, texture "+ tex+" loaded!"); } }
"aInfo" é atribuida conforme o exemplo, apenas trocando um vetor de texturas por uma textura só no método de chamada. "recTransform" é o recTransform do objeto vazio, que deve representar a zona de detecção correta, aonde a imagem deve ser largada. "dropRect" é a variável rect dentro de "rectTransform".
O teste em build, largando o arquivo por cima do rect correto retorna esses resultados:
A imagem só é devidamente recebida ao ser largada em um lugar incorreto (canto superior esquerdo da janela), retornando as seguintes coordenadas:
Enfim, já tentei pesquisar durante umas 2 horas e nada. Deve ser algo babaca, mas não sei mexer direito com coordenadas de UI em tela...
gabrimo
MembroAvançado
PONTOS : 1877 REPUTAÇÃO : 22 Idade : 29 Áreas de atuação : Modelagem, programação e um pouco de todo o resto!Respeito as regras :