public void Initialize(InputType inputType, PlaneType planeType) //TODO and weapons and such { PlayerInput playerInput = PlayerInput.Get(inputType); playerMovementSystem.playerInput = playerInput; playerWeaponSystem.playerInput = playerInput; GameObject modelObject; GameObject SPWObject; switch (planeType) { case PlaneType.SPECTRE: modelObject = InstantiatePrefabAsChild(spectrePlanePrefab); SPWObject = InstantiatePrefabAsChild(spectreSPWPrefab); break; case PlaneType.WASP: modelObject = InstantiatePrefabAsChild(waspPlanePrefab); SPWObject = InstantiatePrefabAsChild(waspSPWPrefab); break; case PlaneType.GRIFFON: modelObject = InstantiatePrefabAsChild(griffonPlanePrefab); SPWObject = InstantiatePrefabAsChild(griffonSPWPrefab); break; case PlaneType.RAZORBACK: modelObject = InstantiatePrefabAsChild(razorbackPlanePrefab); SPWObject = InstantiatePrefabAsChild(razorbackPlanePrefab); break; case PlaneType.ARROWHEAD: modelObject = InstantiatePrefabAsChild(arrowheadPlanePrefab); SPWObject = InstantiatePrefabAsChild(arrowheadSPWPrefab); break; default: throw new UnityException("unknown plane type"); } playerModel = modelObject.GetComponent <PlayerModel>(); playerMovementSystem.playerModel = playerModel; playerWeaponSystem.playerModel = playerModel; playerHealthSystem.playerModel = playerModel; playerDeathSystem.playerModel = playerModel; PlayerSpecialWeapon playerSPW = SPWObject.GetComponent <PlayerSpecialWeapon>(); playerWeaponSystem.specialWeapon = playerSPW; }