mirror of
https://github.com/BlackMATov/unity-iso-tools.git
synced 2025-12-14 17:09:31 +07:00
safe way for add/remove objects of world
This commit is contained in:
@@ -66,6 +66,10 @@ namespace IsoTools.Internal {
|
|||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public T Peek() {
|
||||||
|
return _list.Peek();
|
||||||
|
}
|
||||||
|
|
||||||
public void Clear() {
|
public void Clear() {
|
||||||
_list.Clear();
|
_list.Clear();
|
||||||
_dict.Clear();
|
_dict.Clear();
|
||||||
|
|||||||
@@ -374,6 +374,22 @@ namespace IsoTools {
|
|||||||
_oldVisibles.Remove(iso_object);
|
_oldVisibles.Remove(iso_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GrabEnabledIsoObjects() {
|
||||||
|
var iso_objects = FindObjectsOfType<IsoObject>();
|
||||||
|
for ( int i = 0, e = iso_objects.Length; i < e; ++i ) {
|
||||||
|
var iso_object = iso_objects[i];
|
||||||
|
if ( iso_object.enabled ) {
|
||||||
|
AddIsoObject(iso_object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DropIsoObjects() {
|
||||||
|
while ( _objects.Count > 0 ) {
|
||||||
|
RemoveIsoObject(_objects.Peek());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------
|
// ---------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Private
|
// Private
|
||||||
@@ -775,14 +791,7 @@ namespace IsoTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OnEnable() {
|
void OnEnable() {
|
||||||
var all_iso_objects = FindObjectsOfType<IsoObject>();
|
GrabEnabledIsoObjects();
|
||||||
_objects = new IsoAssocList<IsoObject>(all_iso_objects.Length);
|
|
||||||
for ( int i = 0, e = all_iso_objects.Length; i < e; ++i ) {
|
|
||||||
var iso_object = all_iso_objects[i];
|
|
||||||
if ( iso_object.enabled ) {
|
|
||||||
_objects.Add(iso_object);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_visibles.Clear();
|
_visibles.Clear();
|
||||||
_oldVisibles.Clear();
|
_oldVisibles.Clear();
|
||||||
_sectors.Clear();
|
_sectors.Clear();
|
||||||
@@ -790,7 +799,7 @@ namespace IsoTools {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable() {
|
void OnDisable() {
|
||||||
_objects.Clear();
|
DropIsoObjects();
|
||||||
_visibles.Clear();
|
_visibles.Clear();
|
||||||
_oldVisibles.Clear();
|
_oldVisibles.Clear();
|
||||||
_sectors.Clear();
|
_sectors.Clear();
|
||||||
|
|||||||
Reference in New Issue
Block a user