private void Update() { var cameraAngle = CameraControl.Instance.transform.eulerAngles.y; var angleFromCamera = AngleHelpers.BetweenPlusMinus180(this._currentAngleTarget - cameraAngle); if (Math.Abs(angleFromCamera) > MaxAngleFromPlayerPov) { var newAngleOffset = -Mathf.Min(MaxAngleFromPlayerPov / 4, Mathf.Max(-MaxAngleFromPlayerPov / 4, angleFromCamera)); this._currentAngleTarget += newAngleOffset; } }
public void Center(bool instantly) { var angleDiff = AngleHelpers.BetweenPlusMinus180(CameraControl.Instance.transform.eulerAngles.y - this._currentAngleTarget); this._currentAngleTarget += angleDiff; if (instantly) { this._currentAngle = this._currentAngleTarget; this.transform.eulerAngles = new Vector3(0, this._currentAngleTarget, 0); } }