Welcome,
Guest
. Please
login
or
register
.
April 20, 2026, 05:00:26 PM
Home
Help
Search
Login
Register
Tasharen Entertainment Forum
»
Support
»
NGUI 3 Support
»
delete reference when disable or remove panel?
« previous
next »
Print
Pages: [
1
]
Author
Topic: delete reference when disable or remove panel? (Read 10198 times)
markofevil3
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 25
delete reference when disable or remove panel?
«
on:
January 23, 2014, 06:57:39 AM »
I have 2 panels with some Widgets in each. When I remove one panel, all references still be keep if the other panel are still enable. Is there any way to release all reference of disabled panel?
Logged
ArenMook
Administrator
Hero Member
Thank You
-Given: 337
-Receive: 1171
Posts: 22,128
Toronto, Canada
Re: delete reference when disable or remove panel?
«
Reply #1 on:
January 23, 2014, 06:58:35 AM »
References to what?
Logged
markofevil3
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 25
Re: delete reference when disable or remove panel?
«
Reply #2 on:
January 23, 2014, 07:14:29 AM »
the meshes reference. that's the reason when i call Resources.UnloadUnusedAssets, meshes memory size doesn't reduce. but if i disable all panels and call Resources.UnloadUnusedAssets, meshes memory size reduce
Logged
ArenMook
Administrator
Hero Member
Thank You
-Given: 337
-Receive: 1171
Posts: 22,128
Toronto, Canada
Re: delete reference when disable or remove panel?
«
Reply #3 on:
January 23, 2014, 07:39:08 AM »
You need to yield return WaitUntilEndOfFrame() before calling UnloadUnusedAssets. Otherwise the panel's draw calls won't be destroyed yet.
Logged
markofevil3
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 25
Re: delete reference when disable or remove panel?
«
Reply #4 on:
January 23, 2014, 08:49:29 AM »
I have recorded video.
https://dl.dropboxusercontent.com/u/86872228/Untitled.mov
This is the code for test
using
UnityEngine
;
using
System.Collections
;
public
class
Test
:
MonoBehaviour
{
public
GameObject go
;
public
UIPanel panel
;
public
UIPanel panel2
;
private
GameObject child
;
public
void
DeleteRows
(
)
{
// Destroy();
DestroyImmediate
(
panel2
.
gameObject
)
;
StartCoroutine
(
UnloadResource
(
)
)
;
}
public
void
Create
(
)
{
GameObject tmp
;
if
(
child
!=
null
)
{
for
(
int
i
=
0
;
i
<
200
;
i
++
)
{
tmp
=
Instantiate
(
go
)
as
GameObject
;
tmp
.
transform
.
parent
=
panel2
.
transform
;
tmp
.
transform
.
localScale
=
Vector3
.
one
;
}
}
}
IEnumerator UnloadResource
(
)
{
yield
return
new
WaitForEndOfFrame
(
)
;
Resources
.
UnloadUnusedAssets
(
)
;
}
}
Logged
sgstester
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 4
Re: delete reference when disable or remove panel?
«
Reply #5 on:
January 23, 2014, 08:57:36 AM »
Logged
sgstester
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 4
Re: delete reference when disable or remove panel?
«
Reply #6 on:
January 23, 2014, 08:55:19 PM »
Hi there, no answer for this question?
Logged
sgstester
Newbie
Thank You
-Given: 0
-Receive: 0
Posts: 4
Re: delete reference when disable or remove panel?
«
Reply #7 on:
January 24, 2014, 03:57:58 AM »
Logged
ArenMook
Administrator
Hero Member
Thank You
-Given: 337
-Receive: 1171
Posts: 22,128
Toronto, Canada
Re: delete reference when disable or remove panel?
«
Reply #8 on:
January 24, 2014, 08:20:47 AM »
UnloadUnusedAssets unloads resource such as textures. Meshes are not a loaded resource. They get cleaned up by the garbage collector. You can make sure that NGUI destroys them by putting a Debug.Log inside UIDrawCall.OnDestroy.
P.S. Never use Instantiate. Use NGUITools.AddChild(parent, prefab). Look inside that function to figure out why.
Logged
Print
Pages: [
1
]
« previous
next »
Tasharen Entertainment Forum
»
Support
»
NGUI 3 Support
»
delete reference when disable or remove panel?