private bool isChangeState;//,是否进入多选模式
public Sprite[] overrideImages;//规划填充图片
public ScrollRect scrollRect;//规划列表
private float touchTime;//记录手指触摸时间
//绑定计划按钮 填充图片
public void SetPlan(int index)
{
if (PlanToggleChoose.images != null)
{
foreach (var item in PlanToggleChoose.images)
{
item.GetComponentsInChildren<Image>()[1].sprite = overrideImages[index];
if (index == 0)
{
item.GetComponentsInChildren<Image>()[1].color = new Color(1, 1, 1, 0);
}
else
{
item.GetComponentsInChildren<Image>()[1].color = new Color(1, 1, 1, 1);
}
item.GetComponentInParent<Toggle>().isOn = false;
}
PlanToggleChoose.images.Clear();
PlanToggleChoose.isChooseMore = false;
scrollRect.enabled = true;
}
}
//检测长按
private void Update()
{
if (Input.touchCount == 1)
{
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
touchTime = 0;
isChangeState = false;
}
if (Input.GetTouch(0).phase == TouchPhase.Stationary && isChangeState == false)//避免进入多选后继续计时
{
touchTime += Time.deltaTime;
}
if (touchTime >= 1f)
{
isChangeState = true;
scrollRect.enabled = false;//设置scrollview不能滑动
Handheld.Vibrate();//震动提示
PlanToggleChoose.isChooseMore = true;
}
}
}
[HideInInspector]
public static List<GameObject> images = new List<GameObject>();//鼠标/手指选中的对象
[HideInInspector]
public static bool isChooseMore;
public void OnPointerClick(PointerEventData eventData)
{
GameObject obj = eventData.pointerEnter;
if (obj.GetComponentInParent<Toggle>() != null)
{
Toggle tempToggle = obj.GetComponentInParent<Toggle>();
if (tempToggle.isOn)
{
images.Add(obj);
}
else
{
images.Remove(obj);
}
}
}
public void OnPointerEnter(PointerEventData eventData)
{
if (isChooseMore)
{
GameObject obj = eventData.pointerEnter;
if (obj.GetComponentInParent<Toggle>() != null)
{
Toggle tempToggle = obj.GetComponentInParent<Toggle>();
tempToggle.isOn = !tempToggle.isOn;
if (tempToggle.isOn)
{
images.Add(obj);
}
}
}
}
public void OnPointerExit(PointerEventData eventData)
{
if (isChooseMore)
{
GameObject obj = eventData.pointerEnter;
if (obj.GetComponentInParent<Toggle>() != null)
{
if (!obj.GetComponentInParent<Toggle>().isOn)
{
images.Remove(obj);
}
}
}
}
实现时间块APP的方格填充及多选
最新推荐文章于 2024-04-11 15:20:47 发布