Children collider not detect

Hi everyone I’m new about Unity and I’ve a problem with the detection with a prefab object.
This prefab has 1 script to activate him childrens, one of them has a capsule collider and line renderer components.

The script activate correctly the line renderer and capsule collider but when my character hit something the collision is not detected although I have insered OnCollisionEnter method.

All objects (the enemies) have a collider ane IsTrigger is false.
I put a script in children like this but is not working yet…

LightsaberManager.cs

public bool active = false;
private bool previous = false;

private LineRenderer line;
private CapsuleCollider cc;
private Light l;
private SaberManager sb;

void Start() {
	line = GetComponentInChildren<LineRenderer> ();
	cc = GetComponentInChildren<CapsuleCollider> ();
	l = GetComponentInChildren<Light> ();
    sb = GetComponentInChildren<SaberManager>();
}

void Update() {
    if(previous != active) {
        if(line != null) line.enabled = active;
        if(cc != null) cc.enabled = active;
        if(l != null) l.enabled = active;
        if(sb != null) sb.enabled = active;
        previous = active;
    }
}

SaberManager.cs

// Use this for initialization
void Start() {

}

// Update is called once per frame
void Update() {

}

void OnCollisionEnter(Collision collision) {
    Debug.Log(collision.gameObject.tag);
}

According to the official documentation:

Collision events are only sent if one of the colliders also has a non-kinematic rigidbody attached.
As i can see, OnTriggerEnter is the same, so the only way to solve this is to attach RigidBody to the enemies or the Lightsaber.