>for (int i = 0; i < enemy1s.Count; i++)

>   shotClsn1[i] = new BoundingBox(

>enemyClsn1[i] = new BoundingBox(

なに? この素敵な 変数i w
enemy1s.Countからshot1pos.Countが解るの?
配列初期化時からサイズ指定も無いし