47 lines
1.3 KiB
C#
47 lines
1.3 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.EventSystems;
|
|
using UnityEngine.UI;
|
|
|
|
public class Copytext : MonoBehaviour,IPointerDownHandler, IPointerUpHandler
|
|
{
|
|
float pressedTime = 0; // 按下的时间
|
|
private bool isDown; // 是否按下
|
|
Coroutine coroutine;
|
|
|
|
public void OnPointerDown(PointerEventData eventData)
|
|
{
|
|
Debug.Log("TextCopyExtend Component is Down...");
|
|
isDown = true;
|
|
coroutine = StartCoroutine(CalculatePressedTime()); // 按下开携程
|
|
}
|
|
|
|
private IEnumerator CalculatePressedTime()
|
|
{
|
|
while (isDown) // 只有按下了才启动
|
|
{
|
|
yield return null;
|
|
pressedTime += Time.deltaTime;
|
|
if (pressedTime >= 0.5f) // 超过一秒
|
|
{
|
|
Debug.Log("复制文本");
|
|
// UIMgr.Instance.Notice(ConfigMgr.Instance.GetLanguage(400)); // 提示复制成功
|
|
GUIUtility.systemCopyBuffer = GetComponent<Text>().text; // 获取文本内容
|
|
isDown = false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public void OnPointerUp(PointerEventData eventData)
|
|
{
|
|
Debug.Log("TextCopyExtend Component is Up...");
|
|
isDown = false;
|
|
pressedTime = 0;
|
|
if (coroutine != null)
|
|
{
|
|
StopCoroutine(CalculatePressedTime());
|
|
}
|
|
}
|
|
}
|