48 lines
1.2 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|