Skip to content

BindChildPrefabsTo() destroys transform instead of gameobject #3

@Last8Exile

Description

@Last8Exile

GameObjectExtensions.BindChildPrefabsTo() should destroy instantiated prefabs during element removal from ReactiveCollection.
But GameObjectExtensions.onElementRemoved() destorys transform of instantiated prefab instead of gameobject.
This is not working if instance has RectTransfom.
There are 2 cases:

  1. RectTransfom destoryed and replaced with Transform.
  2. RectTransform not destroyed because there is another component depending on it.

In both cases actual gameobject not destroyed.

I suggest replcaing impelmentation of GameObjectExtensions.onElementRemoved() to:

void onElementRemoved(CollectionRemoveEvent<T> data)
{
    var existingChild = input.transform.GetChild(data.Index).gameObject;
    onChildRemoving?.Invoke(data.Value, existingChild);
    GameObject.Destroy(existingChild);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions