// Update is called once per frame void Update() { Controller.Update(); if (_nextCarStop.StartFrame != 0 && (_replayer.State == "Playing" || _replayer.State == "PlayingSloMo")) { if (Recrdng.Current.CurrFrame > _nextCarStop.StartFrame) { if (_nextCarStop.EndFrame > Recrdng.Current.CurrFrame && Random.Range(0, 2) > 1) { Controller.Reset(); Controller = new CamController_Stop(ActiveCam.transform, Car, _replayer, _nextCarStop); Controller.Init(false); } _nextCarStop = CarStops.FirstOrDefault(s => s.StartFrame > _nextCarStop.EndFrame); } else if (Controller.OutOfBounds()) { ChooseRandomCam(); } } else { if (Controller.OutOfBounds()) { ChooseRandomCam(); } } }
public CamController_Stop(Transform Cam, Transform Car, Replayer rep, CarStop stp) { _car = Car; _trCam = Cam; _replayer = rep; _stp = stp; FutureFrame = stp.EndFrame; _ccf = _trCam.parent; _goCamBox = new GameObject(); _goCamBox.transform.position = stp.CamPos; _goCamBox.transform.localRotation = Quaternion.identity; _trCam.position = stp.CamPos; _trCam.SetParent(_goCamBox.transform); _trCam.LookAt(stp.LookPos); _goCamBox.layer = 14; BoxCollider c = _goCamBox.AddComponent <BoxCollider>(); c.center = Vector3.zero; c.size = new Vector3(0.1f, stp.TripodHeight * 2, 0.1f); _rbCamBox = _goCamBox.AddComponent <Rigidbody>(); _rbCamBox.isKinematic = true; _tripod = GameObject.CreatePrimitive(PrimitiveType.Cube); _tripod.transform.localScale = new Vector3(1, 0.2f, 1); _tripod.transform.position = stp.CamPos - (stp.TripodHeight - 0.052f) * Vector3.up; _tripod.GetComponent <MeshRenderer>().enabled = false; _collCar = _car.gameObject.AddComponent <BoxCollider>(); _collCar.center = Vector3.up * 0.8f; _collCar.size = new Vector3(2, 1.2f, 4); Debug.Log("StopJit constructor TripodHeight = " + stp.TripodHeight.ToString() + " " + Cam.name); }
public void ChooseCam(int NewCamId) { _currentCamId = NewCamId; Controller.Reset(); switch (NewCamId) { case 16: //Debug.Log("Follow" + ActiveCam.name); Controller = new CamController_Follow(ActiveCam.transform, Car, _replayer); break; case 17: //Debug.Log("Wheelarch" + ActiveCam.name); Controller = new CamController_Wheelarch(ActiveCam.transform, Car, _replayer); break; case 18: //Debug.Log("Fish" + ActiveCam.name); Controller = new CamController_Driver(ActiveCam.transform, Car, _replayer); break; case 19: //Debug.Log("Zoom" + ActiveCam.name); Controller = new CamController_Zoom(ActiveCam.transform, Car, _replayer); break; case 20: //Debug.Log("Copter" + ActiveCam.name); Controller = new CamController_Drone(ActiveCam.transform, Car, _replayer); break; case 21: //Debug.Log("Chase" + ActiveCam.name); Controller = new CamController_RoadRunner(ActiveCam.transform, Car, _replayer, PlayerFrames); break; case 22: //Debug.Log("Hedgehog" + ActiveCam.name); Controller = new CamController_Hedgehog(ActiveCam.transform, Car, _replayer); break; case 23: //Debug.Log("Hedgehog" + ActiveCam.name); Controller = new CamController_Side(ActiveCam.transform, Car, _replayer); break; case 34: //Debug.Log("Ice" + ActiveCam.name); Controller = new CamController_Ice(ActiveCam.transform, Car, _replayer); break; } Controller.Init(false); //No Lerp cos we never coded it _nextCarStop = CarStops.FirstOrDefault(t => t.StartFrame > Recrdng.Current.CurrFrame); }