Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/PhoneController.cs
2026-03-04 09:37:33 +08:00

56 lines
1.3 KiB
C#

using Obvious.Soap;
using SoapCustomVariable;
using UnityEngine;
public class PhoneController : MonoBehaviour
{
[SerializeField]
private BoolVariable isPhoneEnabled;
[SerializeField]
private UI_PlayerGeoPoint playerGeoPoint;
[SerializeField]
private FSMVariable playerState;
[SerializeField]
private BoolVariable isPhoneButtonPress;
private void OnEnable()
{
isPhoneEnabled.OnValueChanged += IsPhoneEnabled_OnValueChanged;
isPhoneButtonPress.OnValueChanged += IsPhoneButtonPressOnOnValueChanged;
playerState.OnValueChanged += PlayerStateOnOnValueChanged;
}
private void OnDisable()
{
isPhoneEnabled.OnValueChanged -= IsPhoneEnabled_OnValueChanged;
isPhoneButtonPress.OnValueChanged -= IsPhoneButtonPressOnOnValueChanged;
playerState.OnValueChanged -= PlayerStateOnOnValueChanged;
}
private void PlayerStateOnOnValueChanged(State obj)
{
if (obj != State.idle)
{
isPhoneEnabled.Value = false;
}
}
private void IsPhoneButtonPressOnOnValueChanged(bool isPressed)
{
State value = playerState.Value;
if ((value == State.idle || value == State.vehicle || value == State.vehicleFishing) && isPressed)
{
isPhoneEnabled.Value = !isPhoneEnabled.Value;
}
}
private void IsPhoneEnabled_OnValueChanged(bool value)
{
base.transform.GetChild(0).gameObject.SetActive(value);
playerGeoPoint.UpdatePlayerPosition();
}
}