GoogleVRForUnity✨一款常用的谷歌VR插件教程

简介: GoogleVRForUnity✨一款常用的谷歌VR插件教程


🟥 开发的注意事项

1️⃣ 选用的Unity版本

建议2019的Unity版本,之后的版本会取消一些API,导致SDK报错。


2️⃣ 打包的注意事项

该插件打包时应只选用该Graphics API的设定,否则apk会闪退。


🟧 项目基本配置

复制 HelloVR 场景的如下内容到新场景,便完成了基础配置。

后面我们进行交互逻辑的编写即可。



🟨 凝视事件系统

以下是我写的凝视脚本,简化了原有的凝视方式。

将该脚本挂载在带有Collider的物体上,往该脚本公开的Event注册事件即可。

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
public class SkodeGazeEvent : MonoBehaviour
{
    private EventTrigger myEventTrigger;
    [Header("长凝视时长")] public float longGazeTime = 2;
    private float tempGazeTime;
    public UnityEvent pointerEnterEvent;
    public UnityEvent pointerExitEvent;
    public UnityEvent longGazeEvent;
    private void Awake()
    {
        myEventTrigger = GetComponent<EventTrigger>() ?? gameObject.AddComponent<EventTrigger>();
    }
    private void Start()
    {
        EventTrigger.Entry entryEnter = new EventTrigger.Entry
        {
            eventID = EventTriggerType.PointerEnter,
            callback = new EventTrigger.TriggerEvent()
        };
        entryEnter.callback.AddListener(PointerEnter);
        myEventTrigger.triggers.Add(entryEnter);
        EventTrigger.Entry entryExit = new EventTrigger.Entry
        {
            eventID = EventTriggerType.PointerExit,
            callback = new EventTrigger.TriggerEvent()
        };
        entryExit.callback.AddListener(PointerExit);
        myEventTrigger.triggers.Add(entryExit);
    }
    private void PointerEnter(BaseEventData arg0)
    {
        tempGazeTime = longGazeTime;
        pointerEnterEvent?.Invoke();
    }
    private void PointerExit(BaseEventData arg0)
    {
        tempGazeTime = 0;
        pointerExitEvent?.Invoke();
    }
    private void Update()
    {
        if (tempGazeTime <= 0)
            return;
        tempGazeTime -= Time.deltaTime;
        if (tempGazeTime <= 0)
        {
            longGazeEvent?.Invoke();
        }
    }
}


相关文章
|
21天前
|
vr&ar 图形学
PICO4开发实战一:节奏光剑(VR)(需求文档)
这篇文章是PICO4开发实战指南,详细介绍了开发一款名为“节奏光剑”的VR游戏的需求文档,包括从基础功能开发到交互体验优化、场景体验优化、UI设计、游戏关卡设计等多个开发阶段的详细规划和说明。
PICO4开发实战一:节奏光剑(VR)(需求文档)
|
3月前
|
人工智能 图形学
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
53 1
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏2(附项目源码)
|
3月前
|
人工智能 图形学
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏1(附项目源码)
【制作100个unity游戏之24】unity制作一个3D动物AI生态系统游戏1(附项目源码)
43 2
|
文字识别 搜索推荐 Windows
5款让人惊艳的黑科技软件,只要用过一次就会爱上
今天要给大家推荐5款让人惊艳的黑科技软件,每个都是同类软件中的个中翘楚,请大家给我高调地使用起来,不用替我藏着掖着。
469 0
5款让人惊艳的黑科技软件,只要用过一次就会爱上
|
自然语言处理 程序员 语音技术
一键完成对话需求?这款插件你不能错过(Unity3D)(二)
Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。 Unity对话系统让你: • 用分支逻辑编写交互式对话。 • 在灵活的、完全可自定义的UI系统中显示会话。 • 定义玩家要完成的任务/任务。 • 播放镜头序列,如相机剪辑和音频。 • 保存和加载游戏,并在场景更改中持久化数据。 • 使用本地化来显示文本,并在不同的语言中播放剪裁场景。 • 导入和导出各种格式,如:draft、Chat Mapper和CSV。
|
存储 XML JSON
一键完成对话需求?这款插件你不能错过(Unity3D)(四)
Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。 Unity对话系统让你: • 用分支逻辑编写交互式对话。 • 在灵活的、完全可自定义的UI系统中显示会话。 • 定义玩家要完成的任务/任务。 • 播放镜头序列,如相机剪辑和音频。 • 保存和加载游戏,并在场景更改中持久化数据。 • 使用本地化来显示文本,并在不同的语言中播放剪裁场景。 • 导入和导出各种格式,如:draft、Chat Mapper和CSV。
|
存储 自然语言处理 程序员
一键完成对话需求?这款插件你不能错过(Unity3D)(三)
Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。 Unity对话系统让你: • 用分支逻辑编写交互式对话。 • 在灵活的、完全可自定义的UI系统中显示会话。 • 定义玩家要完成的任务/任务。 • 播放镜头序列,如相机剪辑和音频。 • 保存和加载游戏,并在场景更改中持久化数据。 • 使用本地化来显示文本,并在不同的语言中播放剪裁场景。 • 导入和导出各种格式,如:draft、Chat Mapper和CSV。
|
自然语言处理 程序员 数据库
一键完成对话需求?这款插件你不能错过(Unity3D)(一)
Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。 Unity对话系统让你: • 用分支逻辑编写交互式对话。 • 在灵活的、完全可自定义的UI系统中显示会话。 • 定义玩家要完成的任务/任务。 • 播放镜头序列,如相机剪辑和音频。 • 保存和加载游戏,并在场景更改中持久化数据。 • 使用本地化来显示文本,并在不同的语言中播放剪裁场景。 • 导入和导出各种格式,如:draft、Chat Mapper和CSV。
|
5G 语音技术 vr&ar
⚡️VR ✙ 深入浅出⚡️ | VR 简单介绍说明
🍒VR(虚拟现实) 🍉VR起源 🍓VR概念 🍇VR特点 🏳️‍🌈沉浸性(immersion) 🏳️‍🌈交互性( interaction) 🏳️‍🌈构想性(imagination) 🍋VR应用领域 🌻 娱乐领域 🌻军事航天领域 🌻医学领域 🌻艺术领域 🌻教育领域 🌻文物古迹 🌻生产领域 🍍VR相关设备图片样例 💬总结
⚡️VR ✙ 深入浅出⚡️ | VR 简单介绍说明
|
存储 人工智能 定位技术
10分钟教你用C++写一个贪吃蛇附带AI功能(史上最详细最入门的贪吃蛇教程)附源代码下载
刚学完C++。一时兴起,就花几天时间手动做了个贪吃蛇,后来觉得不过瘾,于是又加入了AI功能。希望大家Enjoy It.
2226 0