45 lines
1018 B
C#
45 lines
1018 B
C#
|
|
using System;
|
|||
|
|
using System.Collections;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using UnityEngine;
|
|||
|
|
using UnityEngine.Events;
|
|||
|
|
|
|||
|
|
public class ObjectToggle : MonoBehaviour
|
|||
|
|
{
|
|||
|
|
public bool isOn = false;
|
|||
|
|
//EventHandler OnValueChanged
|
|||
|
|
public UnityEvent<bool> OnValueChanged = new UnityEvent<bool>();
|
|||
|
|
private float mouseDownTime;
|
|||
|
|
private bool isMouseDown;
|
|||
|
|
private void OnMouseDown()
|
|||
|
|
{
|
|||
|
|
// <20><>¼<EFBFBD><C2BC><EFBFBD>갴<EFBFBD>µ<EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
|
mouseDownTime = Time.time;
|
|||
|
|
isMouseDown = true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private void OnMouseUp()
|
|||
|
|
{
|
|||
|
|
if (isMouseDown)
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD>º<EFBFBD>̧<EFBFBD><CCA7><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
float clickDuration = Time.time - mouseDownTime;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD> 0.2 <20><>
|
|||
|
|
if (clickDuration < 0.2f)
|
|||
|
|
{
|
|||
|
|
isOn = !isOn;
|
|||
|
|
OnValueChanged?.Invoke(isOn);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
isMouseDown = false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void Set(bool isOn)
|
|||
|
|
{
|
|||
|
|
this.isOn = isOn;
|
|||
|
|
OnValueChanged?.Invoke(isOn);
|
|||
|
|
}
|
|||
|
|
}
|