精华内容
参与话题
问答
  • 一、目录 【Unity3D从入门到进阶】文章目录及设置这个专栏的初衷

    一、目录

    【Unity3D从入门到进阶】文章目录及设置这个专栏的初衷

    二、VR设备

    先带大家认识一下VR设备吧,现在VR/AR设备非常的多,对于想要进行VR/AR开发的开发者真实眼花缭乱,今天就给大家简单总结一下VR/AR设备。

    目前的VR/AR设备按照硬件形态可以分为三大类:
    主机VR头显、手机VR眼镜和VR一体机
    具体的参数介绍就参考我VR设备盘点这篇文章吧。

    三、SteamVR

    这个是电脑开发VR的基础,可以直接在Steam里面搜索SteamVR(库-工具),然后下载安装就行了
    在这之前记得把VR设备都连接好,我用的是HTC Vive,就用HTC VIVE为例吧。

    在这里插入图片描述
    线都连接好,然后两个定位器定位到正确的位置
    打开SteamVR,然后进行房间设置,设置完成后就可以愉快的开发了。

    四、正式开始

    下载SteamVR插件

    在Unity商店中,搜索SteamVR,找那个免费的安装就行了
    在这里插入图片描述

    在这里插入图片描述

    设置"[CameraRig]"的位置

    [CameraRig]相当于VR在项目中摄像机的位置,也就是人能看到的位置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    下载VRTK插件

    链接:https://pan.baidu.com/s/1IdHcPknTZHRavg7YhvZWjA
    提取码:kl2f
    也可以直接在商店中搜索VRTK,但是商店里面这个版本没有用过,我还是用的老版本的
    在这里插入图片描述
    在这里插入图片描述
    设置一下VRTK的参数
    在这里插入图片描述

    VRTK自带的一些DEMO也可以学习一下,很全面
    在这里插入图片描述

    现在就可以用手柄瞬移了

    在这里插入图片描述

    手柄事件

    1.手柄按键

    在这里插入图片描述
    1 - 菜单键
    2 - 圆盘左
    3 - 圆盘上
    4 - 圆盘右
    5 - 圆盘下
    6 - 系统键(按下后手柄断开连接,再次按下手柄再次连接上)
    7 - 扳机键
    8 - 握持键
    9 - 触摸板键

    2.圆盘触摸事件

    在这里插入图片描述

    4.触摸板轴的获取

    在这里插入图片描述
    在这里插入图片描述
    通过以上两种方式获取的VRControllerState_t,获取触摸板的轴
    x = state.rAxis0.x
    y = state.rAxis0.y

    5.手柄按键事件

    通过Device.GetPressDown / GetPressUp / GetPress获取按键事件
    Press是按压事件
    通过Device.GetTouchDown / GetTouchUp / GetTouch获取按键事件
    Touch是触摸事件
    在这里插入图片描述

    6.手柄自带API

    在这里插入图片描述

    四、后言

    本文章只是介绍了Unity3d开发VR程序的一般流程,当然也是最简单的流程,主要是讲的一些前期开发的准备,更像是一个开发入门的教程。最后的API介绍也是最初级的事件演示,到底在项目中想要达到什么样的效果,也是要靠大家自己的想象力去开发了。

    展开全文
  • Unity 3D VR项目 动物园

    2019-12-27 15:17:45
    通过unity实现当下热门的AR相机功能,并移植到手机Android环境下使用。 主要功能介绍 手机端拍摄相应动物图片,屏幕显示相应动物(熊、狮子、大象、犀牛、斑马) 动物习性介绍(语音播报,扫描...

    写在前面

    先挖个坑,日后再填。

    通过unity实现当下热门的AR相机功能,并移植到手机Android环境下使用。

    主要功能介绍

    1. 手机端拍摄相应动物图片,屏幕显示相应动物(熊、狮子、大象、犀牛、斑马)
      在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    1. 动物习性介绍(语音播报,扫描图片成功后自动播放,图片离开扫描自动停止)
    2. 触摸屏幕交互(屏幕点击四个按钮使得该动物完成相应的四种动作)

    开发环境介绍

    • Unity 2018.3.14f1
    • Visual Studio 2019
    • Windows 10
    • Android 4.4W’KitKat’(API level 20)
    展开全文
  • Unity3D VR推拉门

    2017-07-06 12:02:48
    许多VR项目中都会有推拉门这样的需求,最近遇到了需求是在推拉门关闭状态时,当人拿住把手时,需要先让推拉门产生一个外推向走廊的动画,然后再变成可以推拉的门。由于项目原因不方便放上视频,有同样需求的可以参考...

    许多VR项目中都会有推拉门这样的需求,最近遇到了需求是在推拉门关闭状态时,当人拿住把手时,需要先让推拉门产生一个外推向走廊的动画,然后再变成可以推拉的门。由于项目原因不方便放上视频,有同样需求的可以参考代码。

    using UnityEngine;
    using System.Collections;
    using DG.Tweening;
    
    public class XXXDoor : MonoBehaviour {
        /// <summary>
        /// 是否门可以使用
        /// </summary>
        public bool canUse = false;
    
        public enum DoorState
        {
            /// <summary>
            /// 门处于开着
            /// </summary>
            DoorOpen,
            /// <summary>
            /// 门处于关闭
            /// </summary>
            DoorClose
        }
        public DoorState doorState;
    
        /// <summary>
        /// 门是否正在播放动画
        /// </summary>
        public bool isAniming = false;
        /// <summary>
        /// 关门动画触发位置
        /// </summary>
        public Vector3 correctPos;
        /// <summary>
        /// 门完全关闭位置
        /// </summary>
        public Vector3 closePos;
    
        private void Start()
        {
        }
    
        private void Update()
        {
            if (canUse)
            if (doorState == DoorState.DoorOpen&&!isAniming&&transform.localPosition.z<correctPos.z)
            {
                OpenToCloseAnim();
            }
        }
        /// <summary>
        /// 关闭到打开的动画,由玩家操作调用
        /// </summary>
        public void CloseToOpenAnim()
        {
            if (canUse)
            {
                isAniming = true;
                transform.DOLocalMoveX(correctPos.x, .5f);
                transform.DOLocalMoveZ(correctPos.z + .1f, 1.0f);
                StartCoroutine(CloseAnimState(0));
            }
        }
        /// <summary>
        /// 打开到关闭的动画,由门自己判定
        /// </summary>
        void OpenToCloseAnim()
        {
            isAniming = true;
            transform.DOLocalMoveZ(closePos.z, .5f);
            transform.DOLocalMoveX(closePos.x, 1.0f);
            StartCoroutine(CloseAnimState(1));
        }
        IEnumerator CloseAnimState(int i)
        {
            yield return new WaitForSeconds(1.1f);
            switch (i)
            {
                case 0:
                    doorState = DoorState.DoorOpen;
                    break;
                case 1:
                    doorState = DoorState.DoorClose;
                    break;
                default:
                    break;
            }
            isAniming = false;
        }
    }
    


    using UnityEngine;
    using System.Collections;
    
    public class XXXDoorHandle : UseableObject {
    
        RoomDoor roomDoor;
    
        protected override void Start()
        {
            roomDoor = GetComponentInParent<XXXDoor>();
            base.Start();
        }
        /// <summary>
        /// 由手柄扳机键按住时, 持续调用
        /// </summary>
        /// <param name="controller"></param>
        public override void HoldIt(GameObject controller)
        {
            if(!roomDoor.isAniming)
                switch (roomDoor.doorState)
                {
                    case XXXDoor.DoorState.DoorOpen:
                        base.HoldIt(controller);
                        break;
                    case XXXDoor.DoorState.DoorClose:
                        roomDoor.CloseToOpenAnim();
                        break;
                    default:
                        break;
                }
        }
    }



    展开全文
  • VRTK是一种高效的VR工具包,用于在Unity3d中快速构建VR解决方案,其中包括许多常见的解决方案,例如: *支持SteamVR和Oculus SDK * VR模拟器,无需VR硬件即可构建VR *控制器和耳机上的激光笔 *控制器和耳机上的弯曲...
  • 1.立方映射:Cubemap 生成立方映射是用脚本...3.烘焙量最好保证模型Scale(缩放大小)为1:1:1,如果在3DMAX中对模型进行了缩放,一定要在工具中将其重置变换 4.将要烘焙的物体属性更改为Static。 5.Window->
    
    


    1.立方映射:Cubemap

    生成立方映射是用脚本生成的,建立Editor文件夹,用Cubemap脚本渲染立方映射

    2.烘焙需要2套贴图:

    (1)纹理贴图

    (2)光影贴图

    3.烘焙量最好保证模型Scale(缩放大小)为1:1:1,如果在3DMAX中对模型进行了缩放,一定要在工具中将其重置变换

    4.将要烘焙的物体属性更改为Static。

    5.Window->Lightmapping选项下可对场景进行烘焙,烘焙后在场景文件夹下有一个与场景同名的文件夹,用于存放烘焙好的贴图

    6.光影贴图,光影贴图大小都为2的N次幂

    7.其他软件烘焙出来的光影贴图添加到unity,材质球的Shader->Legacy Shaders->Lightmaped->Defult

    8.烘焙参数

    Show Resoluton 烘焙精度

    Bounces 光反弹次数,正式烘焙时给2

    Sky Light Intensity 天光,一般为0.5

    Bounces Boost 一般为1,反射

    Bounces Intensity 反弹强度

    Final Gather Rays光线,一般为50

    ConTrast Threshold 对Final Gather Rays进行计算,一般为0.05

    烘焙单个物体——Bale Selected

    Scale In Lightmap设为0时,物体参与烘焙,但不产生任何贴图

    9.AreaLight 片灯,只在烘焙时有用

    放于窗户处,只要窗户能看到外面,就一定要放AreaLight

    10.一般烘焙参数

    Mode Simple Ligthmaps

    Quality Hight

    Bounces                 2

    SkyLight Intensity   0.75

    Bounce Boost         1.5

    Bounce Intensity     1

    Final Gather Rays     50

    Contrast Threshold  0.05

    Interpolation            0.2

    Interpolation Points  20

    Max Distance           3

    Contrast                 0.5

    LOD                        1

    Resolution               20
    展开全文
  • VRUnity3d VR学习笔记——Unity烘焙

    千次阅读 2016-04-27 20:39:34
    转载:... 1.立方映射:Cubemap 生成立方映射是用脚本生成的,建立Editor文件夹,用Cubemap脚本渲染立方映射 ...3.烘焙量最好保证模型Scale(缩放大小)为1:1:1,如果在3DMA
  • Unity3D VR(Virtual Reality, 虚拟现实)

    千次阅读 2016-10-31 21:09:46
    Unity当前对Oculus,OpenVR,PlayStation VR和Gear VR提供了原生支持。相关向导:虚拟现实搜索Unity Knowledge Base以获取更多关于虚拟现实的提示,技巧和问题方法。目录VR预览VR参考VR设备VR音频声场定位技术
  • unity3D VR手柄模型替换

    千次阅读 2017-05-02 15:08:49
    unity3DVR手柄 模型 替换
  • Unity3d VR与Android项目关联

    千次阅读 2017-09-01 15:23:40
    (ps:当时的感觉就是一脸懵逼)当参考了其他APP的VR功能时,还是得先从学习Unity下手,学习基本的场景操作。如果有人跟我一样也是小白,建议去蛮牛和泰课在线去学习(有很多免费的,或者淘宝也有卖视频的),现在把...
  • 【翻译】 Unity3D VR 教程:1.VR概述

    千次阅读 2016-03-28 21:14:44
    Unity引入了一些内置的支持,但是只针对几种特定的VR设备。这个指南会专注于Oculus 系列的VR设备, 特别是 Oculus Rift Development Kit 2 (DK2 ) 和 消费者版本的Gear VR(一种手机外设,需要三星Galaxy s6, s6 ...
  • VR开发中,我们经常需要激活一个用户正在盯着的物体。我们准备了一个示例,一个简单的可扩展的轻量级的系统,让用户和物体交互。这个系统由三个主要的脚本组成,VREyeRaycaster, VRInput, 和VRInteractiveItem - ...
  • 开始用unity进行基础VR开发之前,先确认硬件和软件已经按照前一篇文章进行了设置。 配置好并且安装好unity以后,在打开unity之前,保证DK2已经连接好,并且已经启动。在进行接下来的操作之前,先检查一下Oculus的 ...
  • 基于vlc的unity3d vr视频播放器开发,简述
  • VR设计用户界面的时候需要考虑很多传统屏幕设计场景中难以发现的问题。接下来我们会了解一下,作为VR开发者的挑战和机遇,然后讨论一下在这个新设备上,开发可用的界面的操作性。 UI分辨率和外观 DK2的...
  • using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 定义一个射线类用于回调 记得增加一个射线控制模块 /// public class LineEvent : MonoBehaviour ...
  • 很高兴,能有机会回报Unity技术社区:我和雨松MOMO担任UUG北京站的负责人, 组织Unity技术交流和分享活动...雨松走到那里, 都会有Unity3D 粉丝合影 UUG活动正式开始, 雨松首先上台致辞 什么是 Unity User G...
  • 1.在VR里面,多个Canvas重叠的时可能会发现,射线触碰前面那个Canvas时,会响应到后面的Canvas,如下图:2.把多个Canvas下的Graphic Raycaster的Blocking Objsets的属性都改成All就可以了:
  • 手柄射线 抓取物体 物体投掷 生成物体发射
  • 最早开始是有全景图片,比较早的应用场景在照片...来到了vr时代, 通过全景摄像机拍摄360度视频,制作为短片或者视频。在头盔里面播放,用户会拥有完全的沉浸影片的感觉。要在unit3d中实现,思路是:1、新建模型球,
  • 一using UnityEngine; /// &lt;summary&gt; /// 手柄射线原代码要添加好1. SteamVR_LaserPointer 2.SteamVR_.../// 以下是负责射线抓取的代码 ...public class catchObject : MonoBehaviour ... SteamVR...
  • 首先在Unity项目里已经下载好了SteamVR插件,这个没有的话去asset store下载即可。然后在Hierarchy下面添加[CameraRig]。 1.[CameraRig]下面的 left 或者 right 添加 “SteamVR_LaserPointer” 和 “St...
  • 开发过VR的朋友想必都遇到过(尤其是Htc-Vive),明明自己在VR游戏内将玩家控制器放到了一个默认的特定视角,但真正运行游戏的时候,位置总是跑偏。尤其是环境周围有其他物体或墙壁的话,甚至有可能把玩家视角一运行...
  • Unity3D关于VR的Demo(一)

    万次阅读 热门讨论 2016-07-27 21:00:08
    最近有点忙,只有挤时间去了解VR这方面的Demo了,之前关注了一个Android平台的视频VR的demo研读的差不多了,现在开始关注Unity3d建造VR游戏环境的demo. Android下demo例子地址。 * ...
  • Unity2016 Unity3D开发VR游戏的经验

    千次阅读 2016-04-15 16:20:59
    在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录: 我自己是从2010年开始使用U3D开发,之前是做大型端游,也用过虚幻引擎。2010-2011年,中国移动游戏开始...

空空如也

1 2 3 4 5 ... 20
收藏数 784
精华内容 313
热门标签
关键字:

unity3d vr