归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
阅读:2546回复:5

Vuforia开发技巧八-单击or双击触发对焦功能

楼主#
更多 发布于:2015-07-25 00:27
using UnityEngine;
using System.Collections;
using Vuforia;
 
/// <summary>
/// 怎么控制点击屏幕触发对焦功能
/// </summary>
public class TestControl : MonoBehaviour
{
    private string label;
    private float touchduration;
    private Touch touch;
 
    // Use this for initialization
    void Start()
    {
 
    }
 
    // Update is called once per frame
    void Update()
    {
        // 返回键
        if (Input.GetKey(KeyCode.Escape))
        {
            Application.Quit();
        }
 
        // 检测点击屏幕
        if (Input.touchCount > 0)
        {
            touchduration += Time.deltaTime;
            touch = Input.GetTouch(0);
            // 单击
            if (touch.phase == TouchPhase.Ended && touchduration < 0.2f)
            {
                StartCoroutine("singleOrDouble");
            }
        }
        else
        {
            touchduration = 0;
        }
    }
 
    // 检测单击和双击
    IEnumerator singleOrDouble()
    {
        yield return new WaitForSeconds(0.3f);
        if (touch.tapCount == 1)
            //Debug.Log ("Single");
            OnSingleTapped();
        else if (touch.tapCount == 2)
        {
            //stop 否则会触发两次Double Touch
            StopCoroutine("singleOrDouble");
            //Debug.Log ("Double");
            OnDoubleTapped();
        }
    }
     
    private void OnSingleTapped()
    {
        TriggerAutoFocus();
        label = "Tap the Screen!";
    }
 
    private void OnDoubleTapped()
    {
        label = "Double Tap the Screen!";
    }
 
    /// <summary>
    /// 触发自动对焦方法
    /// </summary>
    public void TriggerAutoFocus()
    {
        StartCoroutine(TriggerAutoFocusAndEnableContinuousFocusIfSet());
    }
 
    /// <summary>
    /// Activating trigger autofocus mode unsets continuous focus mode (if was previously enabled from the UI Options Menu)
    /// So, we wait for a second and turn continuous focus back on (if options menu shows as enabled)
    /// </returns>
    private IEnumerator TriggerAutoFocusAndEnableContinuousFocusIfSet()
    {
        CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_TRIGGERAUTO);
        yield return new WaitForSeconds(1.0f);
        CameraDevice.Instance.SetFocusMode(CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO);
    }
 
    void OnGUI()
    {
        GUI.Label(new Rect(10, 10, 100, 100), "----> " + label);
    }
}

最新喜欢:

747a747a liugang121liugan... 康平梦康平梦
AR学院(www.arvrschool.com),从这里感触未来!

欢迎分享

542060434
侠客
侠客
  • UID1591
  • 粉丝2
  • 关注0
  • 发帖数20
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-06-01 10:43
请问这个脚本怎么使用?
978227246
侠客
侠客
  • UID2047
  • 粉丝0
  • 关注0
  • 发帖数23
板凳#
发布于:2016-07-21 15:04
542060434:请问这个脚本怎么使用?回到原帖
建立一个名叫TestControl 脚本,然后放在ARCamera
just do it
小黄人的诱惑
侠客
侠客
  • UID2177
  • 粉丝0
  • 关注0
  • 发帖数18
地板#
发布于:2016-10-23 11:34
请问为什么cameradevice那里会报错呢,是版本更新的问题么
小黄人的诱惑
侠客
侠客
  • UID2177
  • 粉丝0
  • 关注0
  • 发帖数18
4楼#
发布于:2016-10-23 11:37
小黄人的诱惑:请问为什么cameradevice那里会报错呢,是版本更新的问题么回到原帖
啊,我解决了,可是评论似乎不能删除
归海一啸
管理员
管理员
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 喜欢达人
  • 原创写手
5楼#
发布于:2016-10-23 16:24
小黄人的诱惑:啊,我解决了,可是评论似乎不能删除回到原帖
解决了就说下怎么解决的吧,避免别人也会遇到同样的问题,多谢哈~
AR学院(www.arvrschool.com),从这里感触未来!
游客

返回顶部