using BitStrap; using UnityEngine; using UnityEngine.UI; public class FloatCamera : MonoBehaviour { public Vector3 positionOffset = Vector3.zero; public Vector3 lookAtOffset = Vector3.zero; public RenderTexture renderTexture; [HideInInspector] public FishingPlayer fishingPlayer; [HideInInspector] public Camera camera; [ReadOnly] public FishingFloat fishingFloat; [ReadOnly] public bool isTurnedOn; public void Initialize() { camera = GetComponent(); camera.targetTexture = renderTexture; isTurnedOn = true; TurnOn(false); Image[] componentsInChildren = HUDManager.Instance.hudFishing.floatCameraWidget.GetComponentsInChildren(); } public void TurnOn(bool turnOn) { if (GameController.Instance.iceLevel) { turnOn = false; } if (turnOn != isTurnedOn) { if (turnOn) { fishingFloat = fishingPlayer.currentHands.fishingFloat; } base.transform.parent = ((!turnOn) ? fishingPlayer.transform : GameController.Instance.transform); camera.enabled = turnOn; HUDManager.Instance.hudFishing.floatCameraWidget.gameObject.SetActive(turnOn); isTurnedOn = turnOn; if ((bool)GlobalSettings.Instance && (!GlobalSettings.Instance.playerSettings.showFloatWindow || !GlobalSettings.Instance.playerSettings.IsCasual())) { HUDManager.Instance.hudFishing.floatCameraWidget.gameObject.SetActive(false); } if ((bool)GlobalSettings.Instance && !GlobalSettings.Instance.playerSettings.IsCasual()) { isTurnedOn = false; } } } private void LateUpdate() { if (Time.timeScale != 0f && isTurnedOn && (bool)fishingFloat) { Vector3 vector = fishingPlayer.transform.position - fishingFloat.transform.position; vector.y = 0f; Vector3 position = fishingFloat.transform.position + vector.normalized * positionOffset.x; position.y = positionOffset.y; base.transform.position = position; Vector3 position2 = fishingFloat.transform.position; position2.y = 0f; position2 += lookAtOffset; base.transform.LookAt(position2); } } }