Component name variable

I would like to enable/disable certain scripts on my game objects depending on the platform.

How do i expose the component name that i want to disable, as a variable so it’s not hard coded? This way i can add the same platform script on my game objects and choose what to enable/disable on each one.

var disableFlashComp :String;

function Awake() {
      #if UNITY_FLASH
         GetComponent(disableFlashComp).enabled = false;
      #endif
                 }

This gives me the error BCEE0019 "‘enabled’ is not a member of ‘UnityEngine.Component’.

gameObject.GetComponent(disableFlashComp).enabled = false;

I think this should do it

otherwise it’s using Component.GetComponent

or if that still doesn’t work try:

var script : disableFlashComp = gameObject.GetComponent(disableFlashComp);
script.enabled = false;

then you KNOW it’s typecast to the right type

I would suggest the opposite solution: only add component based on the plateform.

#if !UNITY_FLASH
private NotFlashComponent _comp;
#endif

void Awake()
{
#if !UNITY_FLASH
    _comp = gameObject.AddComponent(NotFlashComponent) as NotFlashComponent;
    if (_comp)
    {
        // set some default values here
        _comp.myValue = 42;
    }
#else
    // add some other component
#endif
}

// later in the script...
void Method()
{
#if !UNITY_FLASH
    _comp.SomeMethod();
#endif
}