Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by jjennings1990 · Mar 30, 2017 at 01:28 AM · texturesmemory managementmemory-leakmemory usage

Efficient ways to optimize the downloading and unloading of large textures?

Hi guys I am working on a project that downloads lots of textures, many of them for a cube map, places them , and then once the player changes their options we unload and the textures and begin loading our new set of images . I wanted to know is their a more efficient way that I can be doing this I have recently begun to encounter some memory issues on both android and iOS machines .

Here is an example of unloading one group of our images :

 public void UnloadTextures(){

     Resources.UnloadAsset(leftPano);
     Resources.UnloadAsset(rightPano);
 }


 private void UnloadTextures(Renderer pano){

     Material[] mats = pano.materials;

     for(int i = 0; i < mats.Length; i++) {

         Texture2D tempTex = mats [i].mainTexture as Texture2D;

         DestroyImmediate (tempTex,true);
     }

     Resources.UnloadUnusedAssets();

 }


Here is a second example of unloading our texture in the project :

         Texture2D leftTemp = leftShutter.texture as Texture2D;
         Texture2D rightTemp = rightShutter.texture as Texture2D;

         leftImage.texture = (Texture)PortalCache.LoadImageFromCache(downloader.DownloadedImageLibrary.leftSpinPaths[index]) as Texture;
         leftShutter.SetNativeSize();
         rightImage.texture = (Texture)PortalCache.LoadImageFromCache(downloader.DownloadedImageLibrary.rightSpinPaths[index]) as Texture;
         rightShutter.SetNativeSize();

         Resources.UnloadAsset(leftTemp);
         Resources.UnloadAsset(rightTemp);


Is there anything I can be doing that is more efficient in terms of unloading these textures? As I mentioned I am also downloading them from web , So perhaps there is an efficient way to manage downloading of textures from the web ?

Comment
Add comment · Show 2
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image hexagonius · Mar 30, 2017 at 07:02 AM 0
Share

i know thats accessing materials creates copies of them. use shared$$anonymous$$aterials ins$$anonymous$$d. what I don't know, if the fact that the original materials still hold the textures due to the copy, if the textures can or cannot be unloaded.
I'd use the profiler and check on which calls memory goes up and when it's not going down.

avatar image jjennings1990 hexagonius · Mar 30, 2017 at 05:47 PM 0
Share

Thank you ! that gives me a good place to start looking !

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by divyajalan · Aug 20, 2019 at 10:13 AM

Did you figure out anything? Even I have a similar usecase where I'm downloading huge textures. Need to know how to free up the memory efficiently

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

100 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

What is the correct way to store circular references in Unity? 1 Answer

Memory error pls help 0 Answers

Unity Total System Memory Usage GO CRAZY?! memory leak 0 Answers

IOS unity taking lot of memory 0 Answers

GfxDriver memory issue on PC [SOLVED] 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges