void Awake() { drivetrainScript = target.GetComponent <Drivetrain>(); raycastLayers = ~ignoreLayers; //If curveFOV hasn't assigned in inspector //if (curveFOV == null || curveFOV.length == 0) { curveFOV = new AnimationCurve(); curveFOV.AddKey(0.0f, 55.0f); curveFOV.AddKey(1.0f, 72.0f); } //if (FOVAffectCamDistance == null || FOVAffectCamDistance.length == 0) { FOVAffectCamDistance = new AnimationCurve(); FOVAffectCamDistance.AddKey(0.0f, 0.0f); FOVAffectCamDistance.AddKey(1.0f, -2.0f); } //if (PitchCurve == null || PitchCurve.length == 0) { PitchCurve = new AnimationCurve(); PitchCurve.AddKey(0.0f, 0.0f); PitchCurve.AddKey(0.1f, 8.0f); PitchCurve.AddKey(1.0f, 1.0f); Keyframe key = new Keyframe(0.1f, 8.0f); key.tangentMode = 21; key.inTangent = 0; key.outTangent = 0; PitchCurve.MoveKey(1, key); } mainCamera = CreateCamera(); accelKeyGetter = () => Input.GetKey(KeyCode.UpArrow); brakeKeyGetter = () => Input.GetKey(KeyCode.DownArrow); if (fMinTargetAngle_y < 0.0f) { fMinTargetAngle_y += 360f; } //Find MainCamera if (!multiCameraTest) { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("MainCamera")) { if (obj.activeInHierarchy == true && obj.GetComponent <Camera>()) { SceneMainCamera = obj; } } } else { /* * SceneMainCamera = new GameObject("MultiCameraTest_" + name); * SceneMainCamera.AddComponent<Camera>(); * if (CameraManager.MultiTestCameraInstances == null) * CameraManager.MultiTestCameraInstances = new List<CarCamera>(); * CameraManager.MultiTestCameraInstances.Add(this); */ } MethodInfo minfo = typeof(CarCamera).GetMethod("switchCounterUpdate_" + switchCriteria.ToString("F"), BindingFlags.NonPublic | BindingFlags.Instance); switchCounterUpdater = (SwitchCounterUpdater)Delegate.CreateDelegate(typeof(SwitchCounterUpdater), this, minfo, false); }