Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by PonT · Jun 23, 2010 at 01:15 PM · texturewwwmemoryleak

Memory problem with WWW and Texture

Hello,

I'm using WWW for creating textures. Here is the script.

using UnityEngine; using System.Collections; using System;

public class NewBehaviourScript : MonoBehaviour { WWW _www = null; Texture2D _texture = null;

IEnumerator Loading() { Debug.Log("Loading..." + GC.GetTotalMemory(true).ToString()); _www = new WWW("http://saveimg.ru/pictures/23-06-10/bd328a508c9105f873ef4a2a0994f7ed.png"); yield return _www; Debug.Log("Loaded..." + GC.GetTotalMemory(true).ToString()); _texture = _www.texture; //_texture.Compress(false); _www.Dispose(); _www = null; Debug.Log("WWW released..." + GC.GetTotalMemory(true).ToString()); }

void Update() { if (Input.GetKeyDown("a") && _www == null && _texture == null) { Debug.Log("Update StartCoroutine" + GC.GetTotalMemory(true).ToString()); StartCoroutine(Loading()); }

 if (Input.GetKeyDown("s") && _www == null && _texture != null)
 {
     Debug.Log("Update Destroy" + GC.GetTotalMemory(true).ToString());
     Destroy(_texture);
     _texture = null;
 }

}

}

Then I'm trying to get texture from WWW, Unity allocates about 20 Mb of memory (according to internal profiler)

But actually I'm expecting it to allocate 4 Mb. (1000*1000 pixels) * 4 rgba size = 4 000 000 bytes

Is there any way to load texture with out any unexpected memory allocations?

Comment
Add comment
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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by Gunder · Sep 27, 2010 at 03:21 PM

Try this:

Texture2D tmp = new Texture2D(2,2);
_www.LoadImageIntoTexture(tmp);

Works for me and no mem leakeds.

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
avatar image
0

Answer by peacefulshade · Jun 14, 2013 at 03:26 PM

I had a problem with a dynamically loaded texture, I was calling

GameObject.Destroy(www.texture)

but the getter for the texture in the www class seems to be doing something that prevents the destruction, what ultimatelly worked for me was:

Texture2D texture = www.texture;

//use texture

GameObject.Destroy(texture); www.Dispose();

Hope it helps.

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

1 Person is following this question.

avatar image

Related Questions

Unable to free resources from memory 0 Answers

the texture appear rubbish 1 Answer

Free memory after WWW.LoadImageIntoTexture 1 Answer

What is the correct way to remove assets from memory? 1 Answer

Large memory footprint increase when assigning a GUITexture from a WWW Object on iPad 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