Hello everyone,
I am trying to assign a Sprite Renderer from script in OnEnable. First time it’s assigning the Sprite Renderer right, but from second time it’s not assigning the sprite renderer.
Every time this object enable, I am doing these things in the script:
- Destroying first child object.
- Instantiating an object as a child. Child object already have a Sprite Renderer attached.
- Getting Child object Sprite Renderer.
This is the script:
public SpriteRenderer childSpriteRend;
void OnEnable()
{
if(shipNumber == 1)
{
if(PlayerPrefs.HasKey("SlotShip1Slot"))
{
if(transform.childCount > 0)
{
Destroy(transform.GetChild(0).gameObject);
}
foreach(GameObject obj in shipCards)
{
if(obj.name == PlayerPrefs.GetString("SlotShip1Slot"))
{
Instantiate(obj, transform);
break;
}
}
}
else if(transform.childCount > 0)
{
Destroy(transform.GetChild(0).gameObject);
}
}
if(transform.childCount > 0)
{
childSpriteRend = transform.GetChild(0).GetComponent<SpriteRenderer>();
Debug.Log(transform.GetChild(0).GetComponent<SpriteRenderer>());
}
}
In Debug.Log it’s showing sprite renderer object name and I can clearly see child object is there with Sprite Renderer.
Let me know if there any doubt.