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
}