38 lines
880 B
C#
38 lines
880 B
C#
// Copyright 2022-2024 Niantic.
|
|
using System;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
|
|
public class SliderToggle : Toggle
|
|
{
|
|
[SerializeField] private RectTransform uiHandleRectTransform;
|
|
|
|
private Vector2 _handlePosition;
|
|
|
|
protected override void Awake()
|
|
{
|
|
_handlePosition = uiHandleRectTransform.anchoredPosition;
|
|
|
|
onValueChanged.AddListener(OnSwitch);
|
|
if (isOn)
|
|
{
|
|
OnSwitch(true);
|
|
}
|
|
|
|
base.Awake();
|
|
}
|
|
|
|
private void OnSwitch(bool on)
|
|
{
|
|
var Xvalue = on ? Math.Abs(_handlePosition.x) : Math.Abs(_handlePosition.x) * -1;
|
|
_handlePosition = new Vector2(Xvalue, _handlePosition.y);
|
|
|
|
uiHandleRectTransform.anchoredPosition = _handlePosition;
|
|
}
|
|
protected override void OnDestroy()
|
|
{
|
|
onValueChanged.RemoveListener(OnSwitch);
|
|
base.OnDestroy();
|
|
}
|
|
}
|