56 lines
1.3 KiB
C#
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();
|
|
}
|
|
}
|