aGlass学习笔记 1
2023-09-27 14:25:50 时间
1, aGlass 官网 http://www.aglass.com/ 有使用和安装文档已经一个unitydemo.
Note:
$1,不要把镜片给装反了。
近视镜片安装:将镜片的凸面(向下),根据 Vive 透镜的对应形状,轻轻压入 aGlass 配件的凹槽内。
$2,安装时有技巧。
点击链接 http://www.aglass.com/assets/aGlass-DKII-Assembly-Guide-Chs.mp4
1) 拨动 Vive 两侧镜头距离旋钮,使镜头距离达到最大。并拨动 Vive 的 IPD(瞳孔间距)旋钮,使瞳
距达到最宽。
经验是把镜片和镜框分开,先装镜框,后装镜片,会比较容易,取的时候也一样。
2) 以左眼配件为例,将 aGlass 配件窄边向上(与 Vive 镜头底座的角度相比,稍微逆时针旋转一定角
度),置入 Vive 镜头上方,边顺时针旋转,边将宽边向下置入,调整配件位置,最终使配件固定在
镜片之上的位置。
这个方位是很重要的,不然放不进去。要取出来先首先按1)把头盔设备调松;然后把镜片向上;其次旋转为2)放入的方向;最后轻松取出。Good Luck.
3) 有线连接的头盔打开方式。
4)如果是无线设备则,不需要第三步。只需要第找一根比较长的usb线连接到电脑上即可。
2, unity脚本中如何调用相关函数。
1)把aGlass的dll放到工程目录中。
先从安装的目录中找到dll。
2)把Plugins文件夹整个复制过去。
3)脚本中可以调用,先引用其命名空间。
using aGlassDKII;
3,把官方demo中的三个脚本合为一个;
EyeGazeTracking.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using aGlassDKII;
using UnityEngine.SceneManagement;
public class EyeGazeTracking : MonoBehaviour {
//把eyetracking的x,y坐标给Vances上的小图片
public GameObject coursor;
public GameObject lighter;
private float x, y;//眼动的坐标
private int count;
// Use this for initialization
void Start () {
aGlass.Instance.aGlassStart ();
x = 0.0f;
y = 0.0f;
count = 0;
}
// Update is called once per frame
void Update () {
// 如果写为lighter是不行的,为什么没有想明白?
GetPos (lighter.gameObject, ref x, ref y);
coursor.transform.localPosition = new Vector2 ((x - 0.5f)*1512, (0.5f - y)*1680);
//lighter.transform.LookAt (coursor.gameObject.transform);
lighter.transform.LookAt (coursor.transform);
RayDetect();
if (x != 0.0f && y != 0.0f) {
print ("x is " + x);
print ("y is " + y);
}
}
void OnDestroy()
{
aGlass.Instance.aGlassStop ();
}
public void GetPos (GameObject c, ref float cx, ref float cy)
{
if (aGlass.Instance.GetEyeValid()) {
count = 0;
if (!c.activeSelf) {
c.SetActive (true);
}
cx = aGlass.Instance.GetGazePoint().x;
cy = aGlass.Instance.GetGazePoint().y;
} else {
count++;
if (count > 10 && c.activeSelf) {
c.SetActive (false);
}
}
}
void RayDetect()
{
RaycastHit hit;
if (Physics.Raycast(this.transform.position, coursor.transform.position - this.transform.position, out hit))
{
hit.transform.gameObject.GetComponent<Renderer>().material.color = Color.red;
print("gameObject.name" + hit.transform.gameObject.name);
if (hit.transform.gameObject.tag == "Box")
{
hit.transform.gameObject.GetComponent<Renderer>().material.color = Color.red;
print(hit.transform.gameObject.name);
}
}
}
}
相关设置
相关文章
- 神经网络与机器学习 笔记—单神经元解决XOR问题
- 《从零開始学Swift》学习笔记(Day 46)——下标重写
- Kubernetes(K8s) 学习笔记 updating...
- 【计算机组成原理】学习笔记——总目录【已完结!】
- 机器学习笔记之生成模型综述(一)生成模型介绍
- 机器学习笔记之隐马尔可夫模型(六)解码问题
- Javascript 笔记与总结(2-8)对象2
- PHP学习笔记_01_基础入门
- 吴恩达机器学习笔记 —— 12 机器学习系统设计
- 零基础spring学习笔记
- Flutter学习笔记(四)--Flutter几个小知识点
- YOLOv7学习笔记(一)——概述+环境+训练
- Struts2,大爷你好!第二天补一发笔记
- objc_msgSend消息传递学习笔记 – 消息转发
- Modbus库开发笔记之三:Modbus TCP Server开发
- kafka笔记博客
- Oracle学习笔记:启停数据库实例、初始化参数
- 软件探索性测试 笔记三
- 《SAS编程与数据挖掘商业案例》学习笔记之十五
- 第七周-GD32F4XX的测试笔记(1)
- Vue2 - 网易云音乐项目笔记(基于Vant UI组件库)
- nginx 学习笔记(5) nginx调试日志
- 传感器技术-电容式传感器(学习笔记六)
- DevExpress Persistent Object v.1.5学习笔记(一)
- 【AI学习笔记】ModuleNotFoundError: No module named ‘keras.layers.embeddings‘
- 【学习笔记】zip和mis的区别
- java笔记(一)
- Linux下汇编语言学习笔记20 ---
- 《Generalized Focal Loss V2》论文笔记
- 量化交易学习笔记(二)-实例化Cerebro引擎-代理已经手握一笔资金准备进行交易
- 论文阅读笔记Context Encoders: Feature Learning by Inpainting