Adicionar imagens na pasta Resources após geração de apk Android
4 participantes
Página 1 de 1
Adicionar imagens na pasta Resources após geração de apk Android
Boa tarde.
Estou desenvolvendo um aplicativo utilizando Unity e Vuforia para reconhecimento de texto. Basicamente é exibida uma imagem na cena e o usuário deve informar a palavra correspondente a imagem. Porém estou com um problema. Preciso copiar imagens para dentro da minha aplicação. Quando executo no PC a imagem é copiada, porém ao executar no meu Android a imagem não é copiada. Alguém sabe uma forma de copiar as imagens que estão no meu Android para dentro da pasta Resources em tempo de execução?
Abaixo o meu código que copia as imagens da minha pasta de download para a pasta Resources/Sprites/facil
Estou desenvolvendo um aplicativo utilizando Unity e Vuforia para reconhecimento de texto. Basicamente é exibida uma imagem na cena e o usuário deve informar a palavra correspondente a imagem. Porém estou com um problema. Preciso copiar imagens para dentro da minha aplicação. Quando executo no PC a imagem é copiada, porém ao executar no meu Android a imagem não é copiada. Alguém sabe uma forma de copiar as imagens que estão no meu Android para dentro da pasta Resources em tempo de execução?
Abaixo o meu código que copia as imagens da minha pasta de download para a pasta Resources/Sprites/facil
- Código:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.IO;
using UiImage = UnityEngine.UI.Image;
using UnityEngine.UI;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class aualizarImagens : MonoBehaviour {
#if UNITY_EDITOR
[MenuItem ("AssetDatabase/loadAllAssetsAtPath")]
#endif
// Use this for initialization
void Start () {
//string myDir = "/storage/emulated/0/Download"; --> quando executar no Android usar este
string myDir = "C:\\Users\\Vivian\\Documents";
string facil = Application.dataPath +"/Resources/Sprites/facil/";
DirectoryInfo dir = new DirectoryInfo(myDir);
if(!dir.Exists){
Debug.Log ("no folder!");
return;
}
List info = new List();
//load supported file types here
info.AddRange(dir.GetFiles("*.png", System.IO.SearchOption.TopDirectoryOnly));
info.AddRange(dir.GetFiles("*.gif", System.IO.SearchOption.TopDirectoryOnly));
info.AddRange(dir.GetFiles("*.jpg", System.IO.SearchOption.TopDirectoryOnly));
if(info != null){
string[] paths = new string[info.Count];
for(int i = 0 ; i < info.Count; i++){
paths[i] = info[i].FullName.ToString();
string sourceFile = System.IO.Path.Combine(myDir, info[i].Name);
string destFile = System.IO.Path.Combine(facil,info[i].Name);
System.IO.File.Copy(sourceFile, destFile, true);
Resources.LoadAsync("Sprites/facil");
#if UNITY_EDITOR
AssetDatabase.Refresh();
#endif
arraySprite[i]=sprite;
}
}
}
vivianPanzenhagen- Iniciante
- PONTOS : 3175
REPUTAÇÃO : 0
Idade : 31
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
no Windows funciona mesmo depois do aplicativo gerado ?
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
Desculpa, acho que não expliquei direito. No Windows executa através do Unity. Executando direto pelo Unity ele busca a imagem e copia para minha pasta. Mas preciso dessa funcionalidade quando executo o app no Android.
vivianPanzenhagen- Iniciante
- PONTOS : 3175
REPUTAÇÃO : 0
Idade : 31
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
Tente trocar a função por esta:
Application.persistentDataPath
Já tentou debugar o código para saber em qual parte que não da certo???
No android, entra neste if pelo menos?
ou nem consegue carregar nada?
Application.persistentDataPath
Já tentou debugar o código para saber em qual parte que não da certo???
No android, entra neste if pelo menos?
- Código:
if(info != null){
}
ou nem consegue carregar nada?
Re: Adicionar imagens na pasta Resources após geração de apk Android
MarcosSchultz escreveu:Tente trocar a função por esta:
Application.persistentDataPath
Já tentou debugar o código para saber em qual parte que não da certo???
No android, entra neste if pelo menos?
- Código:
if(info != null){
}
Marcos, Também estou com o mesmo problema, no PC funciona e no Android não, porem estou citando a pasta de imagens do PC c:\\users etc.., então certamente no android não vai funcionar porque a pasta citada é do PC e não do android, porem como faço para migrar essa pasta tbm para o android, ou posso criar outro banco de dados?
ou nem consegue carregar nada?
karinecorrea- Iniciante
- PONTOS : 3148
REPUTAÇÃO : 0
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
No meu caso eu preciso buscar as imagens dinamicamente independente se é no PC ou no Android então eu não estou mais buscando as imagens da pasta Resouces. A forma que encontrei foi alterar totalmente a busca. Primeiramente passo o caminho que as imagens estão, depois no meu caso tenho 3 níveis de dificuldade e de acordo com o nível as imagens são separadas em listas(guardando o diretório de cada uma). Como estou utilizando uma Sprite para retornar a imagem, acabei encontrando esse método num fórum. Ele pega a imagem do diretório que passei e cria um array de bytes, depois transforma esse array em textura e no final posso criar uma sprite com essa textura. Super confuso, mas devido ao tempo acabei deixando assim...
Abaixo o método que peguei na net e fiz pequenas alterações para que funcionasse da maneira que eu precisava.
public void retornaImagensNivel(List<string> nivel){
arraySprite = new Sprite[nivel.Count];
for (int i = 0; i < nivel.Count; i++) {
byte[] data = File.ReadAllBytes (nivel.ElementAt(i));
Texture2D texture = new Texture2D (270, 186, TextureFormat.ARGB32, false);
texture.LoadImage (data);
texture.name = Path.GetFileNameWithoutExtension (nivel.ElementAt(i));
Sprite spt = Sprite.Create (texture, new Rect (0f, 0f, 270.0f, 186.0f), new Vector2 (0f, 0f), 128);
arraySprite[i] = spt;
}
}
Aproveitando, gostaria de tirar uma dúvida. No método estou passando fixo os valores 270 e 186, isso obriga que minha imagem no Android tenha essas dimensões. Se eu quiser que ela seja adaptada de acordo com meu componente Image, como eu poderia fazer?
Abaixo o método que peguei na net e fiz pequenas alterações para que funcionasse da maneira que eu precisava.
public void retornaImagensNivel(List<string> nivel){
arraySprite = new Sprite[nivel.Count];
for (int i = 0; i < nivel.Count; i++) {
byte[] data = File.ReadAllBytes (nivel.ElementAt(i));
Texture2D texture = new Texture2D (270, 186, TextureFormat.ARGB32, false);
texture.LoadImage (data);
texture.name = Path.GetFileNameWithoutExtension (nivel.ElementAt(i));
Sprite spt = Sprite.Create (texture, new Rect (0f, 0f, 270.0f, 186.0f), new Vector2 (0f, 0f), 128);
arraySprite[i] = spt;
}
}
Aproveitando, gostaria de tirar uma dúvida. No método estou passando fixo os valores 270 e 186, isso obriga que minha imagem no Android tenha essas dimensões. Se eu quiser que ela seja adaptada de acordo com meu componente Image, como eu poderia fazer?
vivianPanzenhagen- Iniciante
- PONTOS : 3175
REPUTAÇÃO : 0
Idade : 31
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
Vc já tentou pegar a largura e altura da Image UI
Weslley- Moderador
- PONTOS : 5727
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Adicionar imagens na pasta Resources após geração de apk Android
a Unity usa width e height para pegar o tamanho de tudo que é parametro, pode ser Screen, image, etc
Re: Adicionar imagens na pasta Resources após geração de apk Android
Vou criar um novo tópico!MarcosSchultz escreveu:a Unity usa width e height para pegar o tamanho de tudo que é parametro, pode ser Screen, image, etc
vivianPanzenhagen- Iniciante
- PONTOS : 3175
REPUTAÇÃO : 0
Idade : 31
Respeito as regras :
Tópicos semelhantes
» Como adicionar códigos nativos de 64 bits em um app Android? 64 bits do Google Play
» Como carregar imagens da pasta ( Arquivos e não Sprites ) via script.
» GOSTARIA DE ADICIONAR UM ITEM APOS A MORTE DE UM INIMIGO.
» Desbloquear Personagem Após assistir o Anuncio (Android)
» A pasta editor não esta na pasta Assets no unity 2018
» Como carregar imagens da pasta ( Arquivos e não Sprites ) via script.
» GOSTARIA DE ADICIONAR UM ITEM APOS A MORTE DE UM INIMIGO.
» Desbloquear Personagem Após assistir o Anuncio (Android)
» A pasta editor não esta na pasta Assets no unity 2018
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos