Can someone help me fix this code bug?

It says System.array does not contain definition for transform
If someone can give me the correct code Ill e really grateful!
Srry Im not used to the new unity coding stuff.

Here is the full script

using UnityEngine;
using System.Collections;

[ExecuteInEditMode]

public class Pivot : FollowTarget {

protected Transform cam;
protected Transform pivot;
protected Vector3 lastTargetPosition;

protected virtual void Awake()
{
	cam = GetComponentsInChildren<Camera>().transform;
	pivot = cam.parent;
}

// Use this for initialization
protected override void Start () {

	base.Start ();
}

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

	if (!Application.isPlaying) 
	{
		if(target != null)
		{
			Follow(999);
			lastTargetPosition = target.position;
		}

		if(Mathf.Abs(cam.localPosition.x) > .5f || Mathf.Abs (cam.localPosition.y) > .5f)
		{
			cam.localPosition = Vector3.Scale(cam.localPosition, Vector3.forward);
		}

		cam.localPosition = Vector3.Scale (cam.localPosition, Vector3.forward);
	}
}

protected override void Follow(float deltaTime)
{

}

}

GetComponentsInChildren return an array, you should be using GetComponentInChildren instead.

cam = GetComponentInChildren<Camera>().transform;

If your main camera is tagged with tag MainCamera. You can use Camera.main.transform instead.