Custom Editor Script Problem!!

Hi everyone
I was working on Advanced AI Script.For which i had to make a Editor Script
I wanted to add Array(Using List for that) of classes to the Editor Script.

So After Trying a lot
i finally diceded to browse for it in Google Finall i found a soultion in (C#) but when i tried to impliment it

It seems to give Object reference not set to instace of object

Here is the script cut short

import System.Collections.Generic;
@CustomEditor(typeof(simpleAI))
@UnityEngine.SerializePrivateVariables
@CanEditMultipleObjects
class AIEditor extends Editor{

// Use this for initialization
@SerializeField
 var AIScript:simpleAI;
@SerializeField
var AI_Script:SerializedObject;
@SerializeField
private var ShowIdlTransform:List.<boolean>;
private var Show:boolean;

function OnEnable(){
    
    AI_Script = new SerializedObject (target);  
    AutoMap = AI_Script.FindProperty("AutoMapWaypoints");
    
    }
  
     function OnInspectorGUI(){
     
    AIScript = target as simpleAI;
    TransformName = AIScript.gameObject.transform.name;
    super.OnInspectorGUI();
    
    serializedObject.Update();
    
    EditorGUILayout.Separator ();
    AI_Script.Update();
    
    var i:int=0;
    for(var Idl:IdleTransform in AIScript.IdleTrans){
    //for(var i:int =0;i<ShowIdlTransform.Count;i++){
    
    EditorGUILayout.Foldout(ShowIdlTransform*,"Transform Parent Set #"+i); //<<<<<<<<<_---------------- PROBLEM HERE* 

if(ShowIdlTransform*){*
ShowIdlTransform =
Idl.TheTransform = EditorGUILayout.ObjectField(“The Object”,Idl.TheTransform,typeof(Transform)) as Transform;

Idl.ItsParent = EditorGUILayout.ObjectField(“Its Parent”,Idl.ItsParent,typeof(Transform)) as Transform;
Idl.Transisition_Anim = EditorGUILayout.ObjectField(“The Transition Aniamtion”,Idl.Transisition_Anim,AnimationClip);

}
i++;
//}

}
EditorGUILayout.EndVertical();
if(GUILayout.Button(“?”)){
Show =!Show;
}

if(GUILayout.Button(“Add WeaponParent Transistioner”)){
AIScript.IdleTrans.Add(new IdleTransform());
ShowIdlTransform.Add(true);
}
}

AI_Script.ApplyModifiedProperties();
}
}
Here IdleTransform is a class
simple AI

var IdleTrans:List.;
@System.Serializable
class IdleTransform{
var Transisition_Anim:AnimationClip;
var TheTransform:Transform;
var ItsParent:Transform;
}
-------------------------------## Solution ##-----------------
Edit
Hi all i figured out the solution the problem was unity was resetiing the list of ShowIdlTransform_
The solution was to Add this line
function Enable(){
ShowIdlTransform=new List.(new boolean[AIScript.IdleTrans.Count]);
}
and
Alter this
for(var i:int =0;i < AIScript.IdleTrans.Count;i++){
ShowIdlTransform = EditorGUILayout.Foldout(ShowIdlTransform*,“Transform Parent Set #”+i);*
if( ShowIdlTransform*){*
Idl.TheTransform = EditorGUILayout.ObjectField(“The Object”,Idl.TheTransform,typeof(Transform)) as Transform;_

Idl.ItsParent = EditorGUILayout.ObjectField(“Its Parent”,Idl.ItsParent,typeof(Transform)) as Transform;
}
}

It looks like you aren’t ever connecting your serialized field private var ShowIdlTransform:List. to a property in your class. You need to use the FindProperty to connect it up otherwise it will give you an error.