public void Initialize(GameObject newVehicle) { if (!newVehicle) { return; } targetVehicle = newVehicle; vp = targetVehicle.GetComponent <VehicleParent>(); trans = targetVehicle.GetComponentInChildren <Transmission>(); if (trans) { if (trans is GearboxTransmission) { gearbox = trans as GearboxTransmission; } else if (trans is ContinuousTransmission) { varTrans = trans as ContinuousTransmission; } } if (stuntMode) { stunter = targetVehicle.GetComponent <StuntDetect>(); } engine = targetVehicle.GetComponentInChildren <Motor>(); propertySetter = targetVehicle.GetComponent <PropertyToggleSetter>(); stuntText.gameObject.SetActive(stuntMode); scoreText.gameObject.SetActive(stuntMode); }
public void SpawnVehicle(int vehicle) { newVehicle = Instantiate(vehicles[vehicle], spawnPoint, Quaternion.LookRotation(spawnRot, GlobalControl.worldUpDir)) as GameObject; cam.target = newVehicle.transform; cam.Initialize(); vp = newVehicle.GetComponent <VehicleParent>(); trans = newVehicle.GetComponentInChildren <Transmission>(); if (trans) { trans.automatic = autoShift; newVehicle.GetComponent <VehicleParent>().brakeIsReverse = autoShift; if (trans is GearboxTransmission) { gearbox = trans as GearboxTransmission; } else if (trans is ContinuousTransmission) { varTrans = trans as ContinuousTransmission; if (!autoShift) { vp.brakeIsReverse = true; } } } if (newVehicle.GetComponent <VehicleAssist>()) { newVehicle.GetComponent <VehicleAssist>().enabled = assist; } if (newVehicle.GetComponent <FlipControl>() && newVehicle.GetComponent <StuntDetect>()) { newVehicle.GetComponent <FlipControl>().flipPower = stuntMode && assist ? new Vector3(10, 10, -10) : Vector3.zero; newVehicle.GetComponent <FlipControl>().rotationCorrection = stuntMode ? Vector3.zero : (assist ? new Vector3(5, 1, 10) : Vector3.zero); newVehicle.GetComponent <FlipControl>().stopFlip = assist; stunter = newVehicle.GetComponent <StuntDetect>(); } engine = newVehicle.GetComponentInChildren <Motor>(); propertySetter = newVehicle.GetComponent <PropertyToggleSetter>(); stuntText.gameObject.SetActive(stuntMode); scoreText.gameObject.SetActive(stuntMode); }
public override void OnInspectorGUI() { GUIStyle boldFoldout = new GUIStyle(EditorStyles.foldout); boldFoldout.fontStyle = FontStyle.Bold; PropertyToggleSetter targetScript = (PropertyToggleSetter)target; PropertyToggleSetter[] allTargets = new PropertyToggleSetter[targets.Length]; isPrefab = F.IsPrefab(targetScript); for (int i = 0; i < targets.Length; i++) { Undo.RecordObject(targets[i], "Property Toggle Setter Change"); allTargets[i] = targets[i] as PropertyToggleSetter; } DrawDefaultInspector(); if (!isPrefab && targetScript.gameObject.activeInHierarchy) { showButtons = EditorGUILayout.Foldout(showButtons, "Quick Actions", boldFoldout); EditorGUI.indentLevel++; if (showButtons) { if (GUILayout.Button("Get Variables")) { foreach (PropertyToggleSetter curTarget in allTargets) { curTarget.steerer = curTarget.GetComponentInChildren <SteeringControl>(); curTarget.transmission = curTarget.GetComponentInChildren <Transmission>(); curTarget.suspensionProperties = curTarget.GetComponentsInChildren <SuspensionPropertyToggle>(); } } } EditorGUI.indentLevel--; } if (GUI.changed) { EditorUtility.SetDirty(targetScript); } }