直接上代码
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class RayCtro : MonoBehaviour {
float currTime=0f; //当前时间
float CoutTime=3f; //计时,3秒后做 完成凝视
public UIctro btnCtro; //挂在在UI上的脚本
GameObject oldObj; //记录 凝视进入的物体
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
Ray camRay = new Ray (transform.position, transform.forward);//创建一条射线
RaycastHit Hit;
if (Physics.Raycast (camRay, out Hit, 4000f)) //这里直接发出射线,进行检查,当然也可以使用laymask层
{
if (Hit.transform.CompareTag ("GazeUI")) //如果凝视到的是UI
{
if (Hit.transform.gameObject != oldObj)
{
Restart ();
}
currTime += Time.deltaTime;
oldObj = Hit.transform.gameObject;
oldObj.GetComponent<Image> ().fillAmount = currTime / CoutTim