Files
2026-02-21 16:45:37 +08:00

77 lines
2.0 KiB
C#

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>();
camera.targetTexture = renderTexture;
isTurnedOn = true;
TurnOn(false);
Image[] componentsInChildren = HUDManager.Instance.hudFishing.floatCameraWidget.GetComponentsInChildren<Image>();
}
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);
}
}
}