最近在做一个项目,需要手与UI的交互,具体就是让一个图片跟随手的关节,然后判断图片是不是在需要点击的UI上
当开始用的是射线检测的办法,但是后来多了一个模型,每次检测的时候从相机投出来的射线都会经过模型,识别到相应的Button还是可以的,但是移出去的时候归零就不行了,因为不存在检测到null,检测到button的时候还会检测到模型,
于是就改了办法,通过OnTrigger事件实现,当时光想停在里头了=。=,想了半天想不出来怎么让他归零,后来问人才想起来还有个OnTriggerExit。。。。这就方便多了,可能脑子卡住了_(:з」∠)_,为了防止下次忘了,先记下来吧。
private void OnTriggerStay(Collider other)
{
if (other.transform.GetComponent<Button>() != null)
{
time_TouchBtn -= Time.deltaTime;
ShowImage.fillAmount = Mathf.Abs((time_TouchBtn - 2) / 2);
if (time_TouchBtn <= 0f)
{
time_TouchBtn = 2f;
ShowImage.fillAmount = 0;
other.transform.GetComponent<Button>().onClick.Invoke();
}
}
}
private void OnTriggerExit(Collider other)
{
time_TouchBtn = 2f;
ShowImage.fillAmount = 0;
}