Результаты поиска
|
|
vaulverin | Дата: Среда, 19 Декабря 2012, 13:46 | Сообщение # 1 | Тема: Приложение съедает очень много оперативной памяти |
был не раз
Сейчас нет на сайте
| 95 jpg картинок с разрешением 1500 x 722 (RGB 24bit), текстура каждого изображения получается занимает чуть больше 3Мб, все вместе около 300Мб, но ни как не 2Гб.
А как посмотреть не создаются ли одни и те же текстуры несколько раз? Проверил массив с текстурами ни чего лишнего там нет.
|
|
| |
vaulverin | Дата: Вторник, 18 Декабря 2012, 15:56 | Сообщение # 2 | Тема: Приложение съедает очень много оперативной памяти |
был не раз
Сейчас нет на сайте
| Доброго времени суток,
есть сцена, которая подгружает картинки из папки ( они не зашиты в приложение, так как требуется возможность замены этих картинок ), беда в том что делает она это очень медленно ( около минуты, хотя общий вес картинок 10Мб ), это во первых, а во вторых "съедается" огромное количество ОП ( примерно 2 Гб !), что делает не возможным запуск приложения на машинах с объемом ОП 2Гб и меньше. При исключении этой сцены приложение загружается почти мгновенно и требует совсем не много ОП.
Вот код сцены: Code using UnityEngine; using System.Collections; using System.Collections.Generic;
// класс для загрузки картинок public class Images : MonoBehaviour{ public Dictionary<string, Texture2D[]> Slider; public Texture[] fullsizePictures; public IEnumerator getImages(){ string filePath; string[] Folders = new string[] { "Layer1Slides", "Layer2Slides", "Layer3Slides", "Layer4Slides", "Layer5Slides", "Layer6Slides", "Layer7Slides", "BottomLayer1Slides", "BottomLayer2Slides", "BottomLayer3Slides", "BottomLayer4Slides", "BottomLayer5Slides", "BottomLayer6Slides", "BottomLayer7Slides", "BottomLayer8Slides", "BottomLayer9Slides", "BottomLayer10Slides", "BottomLayer11Slides", "BottomLayer12Slides", "fullsizePictures" }; Slider = new Dictionary<string, Texture2D[]>(); for(int j = 0; j < Folders.Length; j++){ filePath = Application.streamingAssetsPath+"/slides/"+Folders[j]+"/"; string[] images = System.IO.Directory.GetFiles(@filePath, "*.jpg"); if(Folders[j] == "fullsizePictures") fullsizePictures = new Texture[images.Length]; else Slider[Folders[j]] = new Texture2D[images.Length]; for (int i = 0; i < images.Length; i++){ WWW img = new WWW("file://"+images[i]); yield return img; if(Folders[j] == "fullsizePictures") fullsizePictures[i] = img.texture; else Slider[Folders[j]][i] = img.texture; if(j == Folders.Length - 1 && i == images.Length - 1){ Application.LoadLevel("main"); } } } } }
public class preload : MonoBehaviour { public Images img; void Awake(){ DontDestroyOnLoad(this); } void Start () { img = gameObject.AddComponent<Images>(); StartCoroutine(img.getImages()); } }
|
|
| |
vaulverin | Дата: Понедельник, 29 Октября 2012, 12:50 | Сообщение # 3 | Тема: Использование одного массива на разных сценах |
был не раз
Сейчас нет на сайте
| Спасибо за помощь!) Только с GetComponent("ИмяСкрипта") не сработало, написал GetComponent<ИмяСкрипта>() и заработало =)
|
|
| |
vaulverin | Дата: Пятница, 26 Октября 2012, 13:09 | Сообщение # 4 | Тема: Использование одного массива на разных сценах |
был не раз
Сейчас нет на сайте
| а как к нему потом обращаться на другой сцене?
|
|
| |
vaulverin | Дата: Четверг, 25 Октября 2012, 15:51 | Сообщение # 5 | Тема: Использование одного массива на разных сценах |
был не раз
Сейчас нет на сайте
| Здравствуйте, имеется 2 сцены - сцена, которая подгружает главную сцену и собственно главная, на которой происходит все действо. Во время 1й сцены я создаю ассоциативный массив с названиями и текстурами. Как сделать так, что бы его можно было использовать во 2й сцене?
|
|
| |
vaulverin | Дата: Среда, 24 Октября 2012, 12:41 | Сообщение # 6 | Тема: Проблема с вызовом функции |
был не раз
Сейчас нет на сайте
| Спасибо, помогло.
|
|
| |
vaulverin | Дата: Вторник, 23 Октября 2012, 16:16 | Сообщение # 7 | Тема: Проблема с вызовом функции |
был не раз
Сейчас нет на сайте
| Здравствуйте, С# вижу 2й день, строго не судите) Делаю так:
Code public Texture2D test; public string filePath; .......... IEnumerator LoadImg(string path) { Debug.Log("2 ___"+path); WWW img = new WWW(path); yield return img; test = img.texture; } void LoadSlides() { filePath = System.IO.Path.Combine(Application.streamingAssetsPath+"/slides/Layer1Slides/", "1_0.jpg"); Debug.Log("1 ___"+filePath); LoadImg(filePath); ........ } ......... И функция LoadImg почему-то не вызывается
|
|
| |
vaulverin | Дата: Понедельник, 22 Октября 2012, 17:23 | Сообщение # 8 | Тема: Загрузка пользовательских изображений в Unity3d |
был не раз
Сейчас нет на сайте
| Здравствуйте, задача такая, после построения приложения в папке с .ехе фалом должна быть папка с картинками, которые должны подгружаться приложением и которые можно менять. Как ее решить? Пробовал через StreamingAssets, картинки при билдинге переносятся, все хорошо, но как к ним обращаться и использовать не понял.
|
|
| |