Selecting MonoBehaviour (C# Scripts) for a public member

I have a script, for brevity it’s something like:

using UnityEngine;
using System;

public class LedgeController : BaseController // NOTE: BaseController extends MonoBehaviour!
{
 // .. 
}

And in one of my game object’s I’m looking to be able to add this script via the editor using the following public variable:

public BaseController [ ] controllers;

Everything seems fine up until I go to set the values for controllers in the editor, at which point none of my c# scripts show up.

Is there something I need to do to expose my controller classes as candidates for this field? How can this be changed to ensure I’m able to plug in values?

I think what you want is to add the components to the player at edit time. Then in the PlayerController script use the GetComponents() call to create your array on start.

BaseController [ ] controllers;

function Start()
{
    controllers = gameObject.GetComponents(BaseController);
}