Example #1
0
        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);
        }
Example #3
0
        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);
            }
        }