Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/PositionToCameraDistance.cs
2026-02-21 16:45:37 +08:00

48 lines
1.2 KiB
C#

using BitStrap;
using UnityEngine;
public class PositionToCameraDistance : MonoBehaviour
{
public Vector2 positionMinMax = new Vector2(0f, 0f);
public Vector2 distanceMinMax = new Vector2(0f, 100f);
[HideInInspector]
public Transform cameraTransform;
[ReadOnly]
public Vector3 startGlobalPosition = Vector3.zero;
[ReadOnly]
public Vector3 startLocalPosition = Vector3.zero;
[ReadOnly]
public float distance;
[ReadOnly]
public float distanceMinMaxDiff;
private void Start()
{
startGlobalPosition = base.transform.position;
startLocalPosition = base.transform.localPosition;
distanceMinMaxDiff = distanceMinMax.y - distanceMinMax.x;
cameraTransform = GameController.Instance.fishingPlayer.ufpsCamera.transform;
}
private void Update()
{
distance = Vector3.Distance(startGlobalPosition, cameraTransform.position);
if (distance > distanceMinMax.x)
{
Vector3 localPosition = base.transform.localPosition;
localPosition.x = startLocalPosition.x - Mathf.Lerp(positionMinMax.x, positionMinMax.y, (distance - distanceMinMax.x) / distanceMinMaxDiff);
base.transform.localPosition = localPosition;
}
else
{
base.transform.position = startGlobalPosition;
}
}
}