Цитата beril (

)
 Посмотри это, может поможет
 Да видел эту тему, но тогда не уделил ей должного внимания. Вот этот скрипт работает на ура, только его нужно переписать под компоненты. 
 Спасибо огромное, с меня причитается плюс. 
 Код
using UnityEngine; 
 using System.Collections.Generic; 
 namespace de.softfun.drawntogether { 
     public class EnhancedBehavior : MonoBehaviour { 
         private List<GameObject> linkedObjects = new List<GameObject>(); 
         protected void destroy(params GameObject[] objects) { 
             foreach (GameObject o in objects) { 
                 try { 
                     Destroy(o); 
                 } catch { 
                     continue; 
                 } 
             } 
         } 
         public void LinkObjects(params GameObject[] objects) { 
             foreach (GameObject o in objects) { 
                 linkedObjects.Add(o); 
             } 
         } 
         void OnDestroy() { 
             foreach (GameObject o in linkedObjects) { 
                 destroy(o); 
             } 
         } 
         protected T instantiate<T>(T prefab, bool addLink = true) where T : Object { 
             T o =  (T)Instantiate(prefab); 
             if (addLink && (o is GameObject)) { 
                 linkedObjects.add(o); 
             } 
             return o; 
         } 
     } 
 }
Добавлено (28 сентября 2015, 17:13)
---------------------------------------------
А нет, поспешил с выводами, ошибка не исчезла. Она возникает при нажатии кнопки play. 
 Подскажите boolean переменную которая показывает воспроизведена игра или нет, думаю это исправит проблему.
Добавлено (28 сентября 2015, 17:26)
---------------------------------------------
Попробовал Application.isPlaying не помогает. Насколько я понимаю когда в инспекторе нажимается Remove Component то вызывается метод OnDestroy(), и мне нужно как то при нажатии Remove Component делать DestroyImmediate, но в OnDestroy() не получается, потому что при запуске игры и её остановки вылазят ошибки. Подскажите решение.
Добавлено (28 сентября 2015, 18:12)
---------------------------------------------
Нашел решение: 
 
Код
using UnityEngine; 
 using System.Collections; 
 using UnityEditor; 
 [ExecuteInEditMode] 
 public class Test : MonoBehaviourEnhanced { 
  void Awake ()   
  { 
   if(!GetComponent<SpriteRenderer>())gameObject.AddComponent <SpriteRenderer> (); 
  } 
  void OnDestroy() 
  { 
   if(Application.isPlaying || Application.isLoadingLevel || EditorApplication.isPlayingOrWillChangePlaymode) return; 
    else DestroyImmediate (GetComponent<SpriteRenderer>()); 
  } 
 }