AudiokineticのコミュニティQ&AはWwiseやStrataのコミュニティ内でユーザ同士が質問・回答をし合うことができるフォーラムです。Audiokineticテクニカルサポートチームからの回答をご希望の場合は、必ず サポートチケットページ をご利用ください。

Unity script for finding component duplicates

+2 支持

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.

Mads Maretty S. (Audiokinetic) (39,400 ポイント) 2021 3/3 質問 General Discussion

Please sign-in or register to answer this question.

...