前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >zSpace实现点击任意键(笔或者键盘)响应

zSpace实现点击任意键(笔或者键盘)响应

作者头像
立羽
发布2023-08-24 14:08:40
1690
发布2023-08-24 14:08:40
举报
文章被收录于专栏:Unity3d程序开发Unity3d程序开发

有些时候要出现“点击任意键进入”,既要有响应键盘,又要响应笔上的按钮 挂载脚本

代码语言:javascript
复制
using UnityEngine;
using System.Collections;
using zSpace.Core;
public class AnyKeyPassMgr : MonoBehaviour {
    ZCore m_zCore;

    public delegate void VoidDelegate(GameObject go);
    public VoidDelegate onClick;

    static public AnyKeyPassMgr Get(GameObject go)
    {
        AnyKeyPassMgr listener = go.GetComponent<AnyKeyPassMgr>();
        if (listener == null) listener = go.AddComponent<AnyKeyPassMgr>();
        return listener;

    }
        // Use this for initialization
    void Start () {
        m_zCore = GameObject.FindObjectOfType<ZCore>();
        m_zCore.TargetButtonPress += HandleButtonPress;
    }
	
    void OnDestroy()
    {
        m_zCore.TargetButtonPress -= HandleButtonPress;
    }
	// Update is called once per frame
	void Update () {
        if (Input.anyKeyDown)
        {
            onClick(gameObject);
        }
    }

    private void HandleButtonPress(ZCore sender, ZCore.TrackerButtonEventInfo info)
    {
        if (info.TargetType == ZCore.TargetType.Primary)
        {
            //ZCore.Pose pose = m_zCore.GetTargetPose(ZCore.TargetType.Primary, ZCore.CoordinateSpace.World);
            onClick(gameObject);
        }
    }
}

使用委托的形式,如下使用

代码语言:javascript
复制
AnyKeyPassMgr.Get(gameObject).onClick = OnAnyKey;

    void OnAnyKey(GameObject obj)
    {
        //处理响应
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档