public Object[] createTestWeaponStructure() { GameObject testGameObject = new GameObject(); testGameObject.name = "TESTGAMEOBJECT"; GameObject testGameObject1 = new GameObject(); testGameObject1.name = "TESTGAMEOBJECT"; GameObject testGameObject2 = new GameObject(); testGameObject2.name = "TESTGAMEOBJECT"; GameObject testGameObject3 = new GameObject(); testGameObject3.name = "TESTGAMEOBJECT"; GameObject testGameObject4 = new GameObject(); testGameObject4.name = "TESTGAMEOBJECT"; WeaponPart notSearchedPart = testGameObject1.AddComponent <WeaponPart>(); WeaponPart notSearchedPart2 = testGameObject2.AddComponent <WeaponPart>(); WeaponPart notSearchedPart3 = testGameObject3.AddComponent <WeaponPart>(); WeaponPart searchedPart = testGameObject4.AddComponent <WeaponPart>(); Adaptor adaptorLoadingMechanism = testGameObject1.AddComponent <Adaptor>(); Adaptor adaptorLoadingMechnaism2 = testGameObject1.AddComponent <Adaptor>(); Adaptor adaptorFiringMechanism = testGameObject2.AddComponent <Adaptor>(); Adaptor adaptorBarrel = testGameObject4.AddComponent <Adaptor>(); adaptorFiringMechanism.ChildPartTransform = adaptorFiringMechanism.transform; adaptorLoadingMechanism.ChildPartTransform = adaptorLoadingMechanism.transform; adaptorLoadingMechnaism2.ChildPartTransform = adaptorLoadingMechanism.transform; adaptorBarrel.ChildPartTransform = adaptorBarrel.transform; adaptorFiringMechanism.WeaponTypeOfAdaptor = WeaponPartType.FiringMechanism; adaptorLoadingMechanism.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; adaptorLoadingMechnaism2.WeaponTypeOfAdaptor = WeaponPartType.LoadingMechanism; adaptorBarrel.WeaponTypeOfAdaptor = WeaponPartType.Barrel; notSearchedPart.Adaptors = new List <Adaptor> { adaptorLoadingMechanism, adaptorLoadingMechnaism2 }; notSearchedPart2.Adaptors = new List <Adaptor> { adaptorFiringMechanism }; searchedPart.Adaptors = new List <Adaptor> { adaptorBarrel }; notSearchedPart.TestSetup("NotSearchedPart", WeaponPartType.Trigger, null); notSearchedPart2.TestSetup("NotSearchedPart2", WeaponPartType.LoadingMechanism, notSearchedPart); notSearchedPart3.TestSetup("NotSearchedPart3", WeaponPartType.LoadingMechanism, notSearchedPart); searchedPart.TestSetup("searchedPart", WeaponPartType.FiringMechanism, notSearchedPart2); notSearchedPart.AddChild(notSearchedPart2); notSearchedPart.AddChild(notSearchedPart3); notSearchedPart2.AddChild(searchedPart); notSearchedPart.ConnectChildToAdaptor(adaptorLoadingMechanism, notSearchedPart2); notSearchedPart.ConnectChildToAdaptor(adaptorLoadingMechnaism2, notSearchedPart3); notSearchedPart2.ConnectChildToAdaptor(adaptorFiringMechanism, searchedPart); WeaponStructure weaponStructure = testGameObject.AddComponent <WeaponStructure>(); weaponStructure.trigger = notSearchedPart; testGameObject1.transform.parent = testGameObject.transform; testGameObject2.transform.parent = testGameObject1.transform; testGameObject3.transform.parent = testGameObject1.transform; testGameObject4.transform.parent = testGameObject2.transform; Object[] result = new Object[5]; result[0] = weaponStructure; result[1] = searchedPart; result[2] = notSearchedPart; result[3] = notSearchedPart2; result[4] = notSearchedPart3; return(result); }