Audiokinetic's Community Q&A is the forum where users can ask and answer questions within the Wwise and Strata communities. If you would like to get an answer from Audiokinetic's Technical support team, make sure you use the Support Tickets page.

Unity script for finding component duplicates

+2 votes

Hi all.

Here's a quick script you can use for finding game objects with duplicated scripts, instead of having to go manually through all of them. 
The example is currently looking for AkSurfaceReflector scripts, but you can replace that with any other type of component. 


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FindAkSurfaceReflectorDuplicates : MonoBehaviour
{
    public List<GameObject> akSurfComps = new List<GameObject>();

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            AkSurfaceReflector[] objects = GameObject.FindObjectsOfType<AkSurfaceReflector>();
            print("Total Amount of AkSurfaceReflectors: "+objects.Length);
            for (int i = 0; i<objects.Length; i++)
            {
                if (akSurfComps.Contains(objects[i].gameObject))
                {
                    Debug.Log(objects[i].gameObject.name + " has duplicated AkSurfaceReflector Scripts.", objects[i].gameObject);
                }
                else {
                    akSurfComps.Add(objects[i].gameObject);
                }
            }
            if (akSurfComps.Count < 1) {
                print("You have no objects with duplicated AkSurfaceReflector scripts.");
            }
        }  
    }
}


The game object name will be shown in the console on pressing 1 on your keyboard, and you can click on it in the console to highlight it in the Hierarchy.

asked Mar 3, 2021 in General Discussion by Mads Maretty S. (Audiokinetic) (38,280 points)

Please sign-in or register to answer this question.

...