- Home /
I am trying to destroy all clones of object...
I've tried with "foreach", but i get errors like "Perphaps, wrong unkown operator" ( or something like this ) and " conversion of type UnityEngine.GameObject[] to UnityEngine.Object is impossible"
The object name is "Wally", when it has clones - "Wally(Clone)", so i guess i used the right tag? actually, do i need to suggest a tag or no ( and how if i need to )? because i didn't.
I also tried to use this instead of "foreach"
"for (int i = 0; i < 70; i++)"
With adding [i] to Wally: "Destroy (Wally[i]);"
But nothing happens.
Can someone tell me the right way to do what i need? With "foreach" or with "for (int i = 0; i < 70; i++)", doesn't matter
public class Reset : MonoBehaviour {
private GameObject[] Wally;
private Vector3 initialPosition;
private float distance = 0.5f;
void Start () {
initialPosition = transform.position;
}
void Update () {
transform.Translate(Vector3.zero * Time.deltaTime);
if( Vector3.Distance(transform.position, Vector3.zero) < distance)
{
transform.position = initialPosition;
var Wally = GameObject.FindGameObjectsWithTag("Wally(Clone)");
{
Destroy (Wally[5]);
}
}
}
}
void Start () {
for (int i = 0; i < numberOfObjects; i++) {
float angle = i * Mathf.PI * 2 / numberOfObjects;
Vector3 pos = new Vector3 (Mathf.Cos (angle), 0, Mathf.Sin (angle)) * radius;
GameObject Wally = Instantiate (prefab, pos, Quaternion.LookRotation(-pos)) as GameObject;
Wally.transform.parent = transform;
Wally.AddComponent<D>();
}
}
Answer by smallbit · Aug 19, 2014 at 04:41 AM
Best way is to add tag to the prefab for instance "Wally". Than you search items by tag,
var Wally = GameObject.FindGameObjectsWithTag("Wally");
foreach(var item : GameObject in Wally)
{
Destroy(item);
}
BTW when you instantiate prefab, Wally(Clone) is the name of it, not the tag.
Answer by Noob_Vulcan · Aug 19, 2014 at 04:48 AM
A Tag is a word which you link to one or more GameObjects. The One you used or see in hierarchy is GAMEOBJECT NAME not the TAG.
To set the Tag of a gameObject/prefab . Click on it and check the inspector you will see tag.
var Wally = GameObject.FindGameObjectsWithTag("Wally(Clone)");
this doesn't work because Wally(Clone) is gameobjects Name not the tag.
Answer by robbiesmith79 · Jan 02, 2018 at 04:31 PM
I would add to the accepted answer that you need to add a tag "Wally" to the Instantiated GameObject reference:
GameObject go = Instantiate(blah,blah,blah);
go.tag = "Wally";
Then it will work.
Your answer
![](https://koobas.hobune.stream/wayback/20220613160933im_/https://answers.unity.com/themes/thub/images/avi.jpg)