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.