Как выключить скрипт на обьекте из массива?

Для выключения скрипта на объекте из массива в языке программирования C# необходимо использовать компонент "MonoBehaviour". Вот несколько способов, которыми можно достичь этой цели:

1. Использование метода SetActive():
SetActive() - это метод, доступный у каждого объекта в Unity, который позволяет включать и выключать объекты. Если у вас есть массив объектов, вы можете использовать этот метод, чтобы выключить скрипт на конкретном объекте:

   using UnityEngine;

   public class ScriptsController : MonoBehaviour 
   {
       public MonoBehaviour[] scriptsToDisable;
       
       void Start()
       {
           foreach (MonoBehaviour script in scriptsToDisable)
           {
               script.enabled = false;
           }
       }
   }

В этом примере мы используем переменную scriptsToDisable - массив типа MonoBehaviour, в котором мы храним ссылки на скрипты, которые мы хотим выключить. Затем мы проходимся по этому массиву и устанавливаем свойство enabled в значение false для каждого элемента массива. Это выключит скрипт на каждом объекте, хранящемся в массиве.

2. Использование интерфейса:
Другой способ - использование интерфейса. Определим интерфейс, который будет содержать метод, отключающий скрипт, и реализуем его в наших классах скриптов:

   public interface IDisableableScript
   {
       void DisableScript();
   }

   public class MyScript : MonoBehaviour, IDisableableScript
   {
       public void DisableScript()
       {
           enabled = false;
       }
   }

   public class ScriptsController : MonoBehaviour 
   {
       public MonoBehaviour[] scriptsToDisable;
       
       void Start()
       {
           foreach (MonoBehaviour script in scriptsToDisable)
           {
               if(script is IDisableableScript)
               {
                   (script as IDisableableScript).DisableScript();
               }
           }
       }
   }

В этом примере мы определяем интерфейс IDisableableScript, который имеет метод DisableScript(). Затем мы создаем класс MyScript, который наследуется от MonoBehaviour и реализует этот интерфейс. Метод DisableScript() в этом классе просто выключает сам скрипт: enabled = false.

В контроллере скриптов мы проверяем, реализует ли скрипт интерфейс IDisableableScript, и если да, то вызываем метод DisableScript(). Это позволяет нам выключать только те скрипты, которые действительно реализуют этот интерфейс.

В обоих примерах выключение скриптов происходит в методе Start(). Однако, вы можете выбрать другой метод, который подходит вам лучше для выполнения этой операции, в зависимости от требований вашего проекта.