77 lines
2.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|