LinkVR 开发者手册

 

详细版,以及LinkVR软件和unity插件php

连接:https://pan.baidu.com/s/15xQ7ZGMkJftpJyj4AKeyCg
提取码:8k67 编程

 
1 版本要求
Unity Pro 2017.3.0 及以上版本(目前暂支持 2017.3-2018.2 版本, 2018.3 及以上版本会尽快支持)
2 使用前须知
1. 打开 LinkVR Unity SDK -> MonoReplacer 文件夹
2. 运行 LinkVR 受权 mono 替换工具 .exe
2.1 Mono 替换工具
3. 替换当前 Unity 版本的 Mono 文件。
1) 点击浏览,会出现浏览文件夹的提示框
2) 选择 Unity.exe 所在的 Editor 文件夹
3) 点击替换,直到完成替换
2.2 启动 Mono 替换工具 上海曼恒数字技术股份有限公司
2.3 选择 Unity Editor 文件夹
2.4 点击替换
2 上海曼恒数字技术股份有限公司
3
4. 完成替换 Unity Mono 后,在新建或打开当前版本 Unity 工程时,会提示须要受权码进行受权,
请联系客服索取或登陆 https://www.gvrtalk.com/form_linkvr.php 申请 60 天试用。
2.5 受权激活 上海曼恒数字技术股份有限公司
4
3 导入插件
1. 受权完成后,打开 Unity ,依次点击 Assets -> Import Package -> Custom Package... ,选择
LinkVRSystem_v2.2.0.unitypackage 文件,若您没有该插件,请联系客服索取。
3.1 导入 LinkVR 插件 上海曼恒数字技术股份有限公司
5
2. 弹出导入界面,勾选全部文件,点击“ Import ”按钮。
3.2 导入界面
3. 在项目资源文件夹中会出现 LinkVR 文件夹,其中 Examples 文件夹中的场景是 LinkVR 的案例场景,
Document 文件夹中的文档是 LinkVR API 文档。
3.3 资源文件夹内容 上海曼恒数字技术股份有限公司
6
4 使用 LinkVR
注意:在工具栏中 Tools -> LinkVR 中能够进行项目设置, LinkVR 在插件导入时会自动进行一次项目设
置,若您有特殊需求,不但愿项目设置被自动更改,请不勾选 Automatically Check And Set Project Settings
默是勾选状态。
Automatically Check And Set Project Settings 表示自动检查并进行项目设置;
Set Project Settings 表示手动设置一次项目设置。
4.1 修复项目设置
设置的内容以下(详情可查看 LinkVRSettings.cs 脚本):
1) PlayerSettings 中的显示分辨率对话框选项设置为 Disabled
2) PlayerSettings 中的捕获单屏设置为 false
3) PlayerSettings 中的 MTRendering (多线程渲染)设置为 false
4) PlayerSettings 中的 Windows 图形渲染 API 设置为 OpenGLCore Direct3D 11 ,默认是将
OpenGLCore 放首位。
5) PlayerSettings 中的 VR 支持打开,并将设备设置为 Stereo Display (non head-mounted)
6) QualitySettings 中的抗锯齿属性设置为 Disabled
7) SyncUploadBufferSize 的值设置为 4
注:若是 Unity 工程在发布时选择的是采用 OpenGLCore 渲染,务必将 QualitySettings 中的抗
锯齿属性设置为不开启, LinkVR 的双目渲染方式与 Unity MSAA 硬件抗锯齿不兼容,致使
应用程序在打开后黑屏。若是 Unity 工程在发布时选择的是采用 Direct3D 11 渲染,在颜色空
间设置项中务必选择 Gamma 选项, Linear 颜色空间会破坏立体渲染,这是 Direct3D 的一个
限制。另外,在 Windows7 系统中,采用 Direct3D 11 渲染的应用程序不支持主动立体,在
Windows10 系统中,两种渲染方式都支持主动立体。 LinkVR Unity SDK 默认采用并推荐的渲染
方式是 OpenGLCore ,由于它在系统方面的兼容性更好。若是项目须要,您能够不勾选
Automatically Check And Set Project Settings ,并手动设置为采用 Direct3D 11 渲染,但须要知
晓其在主动立体方面的限制。 上海曼恒数字技术股份有限公司
7
4.1 LinkVR 系统主入口
1. Hierarchy 面板中选中 FPSController -> LinkVRSystemRoot 物体,可见 LinkVRSystem 脚本,该脚
本主要有四个公有字段。
4.2 LinkVRSystem
1) isDeveloperMode (是不是开发者模式)
它的做用是能够模拟沉浸式追踪环境,便于开发者进行开发和调试。详情参考 5.1 开发者模
2) designatedConfigPath (指定的配置文件)
它的做用是案例内容在启动后针对指定的配置文件进行相应结构的生成和追踪系统的绑定,
是整个 LinkVR 系统中最核心的部分。
选择指定的配置文件有两种方式:
点击 designatedConfigPath 字段后边的“ Choose ”按钮,选择配置文件(建议将配置文
件放到 StreamingAssets 文件夹中,不然请在打包以后将配置文件手动拷贝到对应的文件
夹内)。
LinkVR 客户端软件内生成并选择对应的配置文件后直接启动项目案例,配置文件路径
做为命令行参数传递给项目案例,项目案例读取配置文件路径,生成相应的结构并绑定
追踪系统。 上海曼恒数字技术股份有限公司
8
3) cameraTemplete (相机模板)
它的做用是能够设置案例内容运行时动态生成的相机的模板,方便使用相机特效和其余所需
的组件或脚本。
具体作法为:
根据须要更改 FPSController 物体下的 FirstPersonCharacter 物体上的相机组件的参数设置。
根据须要在 FirstPersonCharacter 物体上挂载所需的组件或脚本。
这样,在案例内容运行后, LinkVR 系统将根据此相机模板动态复制并生成 LinkVR 系统的相机。
固然,您也能够不将相机模板指定为 FirstPersonCharacter 物体,能够新建一个相机物体,根
据须要进行相机参数的设置和组件或脚本的挂载,将相机拖到资源文件夹中做为 prefab 预制
体,而后将该预制体拖到 LinkVRSystem 脚本的 cameraTemplate 属性上。
4) rootTransform (根节点)
它是采起第一人称视角时的人物 Body ,须要挂载 CharacterController 组件和
LinkVR.Characters.FirstPersionController 脚本,默认的第一人称就是它的父物体。
2. Assets –> StreamingAssets -> config.xml 文件中,有四个 LinkVR 相关的配置参数。
1) argsConfig (案例内容启动时传入的配置文件路径参数),切勿随意修改。
2) defaultLinkVRConfig (默认的配置文件路径),当指定的配置文件路径不存在时,使用默认的
配置文件路径。
3) showCursor (是否显示鼠标指针),能够直接在 config.xml 文件中修改属性值来决定案例内
容是否显示鼠标指针。
4) isFlyMode (漫游是不是飞行模式),能够直接在 config.xml 文件中修改属性值或在代码中使
LinkVRMoveManager.Instance.IsFlyMode = value 修改属性值来决定漫游是否采用飞行模式。
漫游模式,有两种方式:
刚体模式,运用的是 LinkVR.Characters.FirstPersionController 脚原本控制漫游。
飞行模式,运用的是 LinkVRMoveManager.TranslateFlyMode() 来控制漫游。 上海曼恒数字技术股份有限公司
9
4.2 实现漫游
LinkVR -> FPSController.prefab 拖到场景中,如有其余的 VRPlayer 请移除。(场景中要有地面)便可
实现漫游。正如 Assets -> LinkVR -> Examples -> 001 - SimpleExample 案例所示。
4.3 实现 UI 交互
Link VR 内,提供了 UGUI 的事件监听器。其中提供了两种方式,一种是直接实现事件接口,另外一种
是利用 EventTrigger 添加事件: AddTriggerListener() 。详见 Assets -> LinkVR -> Scripts -> Event ->
EventTriggerListener 脚本。以下图所示:
4.3 EventTriggerListener
1. LinkVR -> FPSController.prefab 拖到场景中,如有其余的 VRPlayer 请移除。
2. 新建脚本,绑定 UI 以及事件,并将脚本拖拽至场景物体上(具体的 UI 交互案例请查看 LinkVR ->
Examples -> 002 - UIExample )以下所示:
public Button button1; 上海曼恒数字技术股份有限公司
public Toggle toggle;
public Slider slider;
public Dropdown dropdown;
public ScrollRect scrollRect;
EventTriggerListener.Get(button1).onHover += (eventData, onHover) =>
{
Log(onHover ? "Button 1 is hovered" : "");
};
EventTriggerListener.Get(button1).onPress += (eventData, onPress) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onPress ? "Button 1 is pressed" : "");
};
EventTriggerListener.Get(button1).onClick += (eventData) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log("Button 1 is clicked");
};
toggle.onValueChanged.AddListener((bool isOn) =>
{
Log("The toggle state is " + (isOn ? "on" : "off"));
});
slider.onValueChanged.AddListener((float value) =>
{
Log("The value of slider is " + (int)value);
});
dropdown.onValueChanged.AddListener((int value) =>
{
string optionLetter = "";
switch (value)
{
case 0:
optionLetter = "A";
break;
10 上海曼恒数字技术股份有限公司
case 1:
optionLetter = "B";
break;
case 2:
optionLetter = "C";
break;
case 3:
optionLetter = "D";
break;
}
Log("The dropdown option selected is Option " + optionLetter);
});
EventTriggerListener.Get(scrollRect).onBeginOrEndDrag += (eventData, onBeginOrEndDrag) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onBeginOrEndDrag ? "ScrollView is on drag" : "");
};
EventTriggerListener.Get(scrollRect.verticalScrollbar).onBeginOrEndDrag += (eventData,
onBeginOrEndDrag) =>
{
if (eventData.button != PointerEventData.InputButton.Left) return;
Log(onBeginOrEndDrag ? "Scrollbar is on drag" : "");
};
11 上海曼恒数字技术股份有限公司
12
4.4 实现手柄按键绑定
G-Motion 手柄在使用代码获取手柄输入时,对应按键的序号以下:
4.4 手柄按键序号
1. LinkVR -> FPSController.prefab 拖到场景中,如有其余的 VRPlayer 请移除。
2. 新建脚本,绑定手柄按键( Joystick 中的 Buttons 数组即对应了 G-motion 手柄的按键,如下示例
是以手柄 0 键为例),并将脚本拖拽至场景物体上,以下所示:
方式一:
// 获取手柄实体
JoystickTracker t = LinkVRInput.Joystick;
if (t != null)
{
// 手柄 0
t.Buttons[0].onButtonDown = () =>
{
Debug.Log("ButtonDown");
};
t.Buttons[0].onButtonUp = () =>
{ 上海曼恒数字技术股份有限公司
Debug.Log(“ButtonUp”);
};
t.Buttons[0].onClick = () =>
{
Debug.Log(“Clicked”);
};
}
方式二:
// 手柄 0
if (LinkVRInput.GetButtonDown(0))
{
Debug.Log("ButtonDown");
}
if (LinkVRInput.GetButtonUp(0))
{
Debug.Log("ButtonUp");
}
if (LinkVRInput.GetButton(0))
{
Debug.Log("Button");
}
方式三:
// 结合 UI
public Button button1;
EventTriggerListener.Get(button1).onClick += (eventData) =>
{
// 手柄 0
if (eventData.button != PointerEventData.InputButton.Left) return;
Log("Button 1 is clicked");
};
注:在 LinkVR 系统中,有默认注册的手柄事件并开启了手柄射线,请务必先查阅 JoystickBehaviour 类,
该脚本挂载在 LinkVR -> Resources -> Joystick.prefab 上,当 LinkVR 系统初始化时,会默认加载该手柄。其中
Joystick.RaycastDistance 为射线长度; Joystick.LayerMask 为须要相应的层级; Joystick.IsRaycastOn true
不然不发射射线。
13 上海曼恒数字技术股份有限公司
14
5 功能介绍
5.1 开发者模式
isDeveloperMode 表示是不是开发者模式,它利用键盘和鼠标对应追踪手柄的按键,做用是能够模拟
沉浸式追踪环境,便于开发者进行开发和调试。
启用开发者模式
会自动添加 DeveloperMode 脚本,开发者能够利用鼠标、键盘进行操做测试,具体的鼠标键盘按键与
手柄对应关系在运行后 GUI 上会有提示。
控制状态可分为控制人物和控制手柄两种。控制状态切换键为 LeftAlt
Control State Player 时,控制人物移动以及旋转。
Control State Hand 时,控制手柄移动以及旋转。
5.1 启用开发者模式 上海曼恒数字技术股份有限公司
15
5.2 开发者模式的提示信息
不启用开发者模式
会自动去除 DeveloperMode 脚本。
5.3 不启用开发者模式
若开发者想在该模式下进行测试,则须要进行如下步骤:
1) 确保链接追踪外设(链接 Venomx 手柄和对应的接收器) 上海曼恒数字技术股份有限公司
16
5.4 Venomx 手柄 图 5.5 Venomx 手柄按键接收器
2) Assets -> StreamingAssets-> single_screen.xml (默认指定的配置文件)中,将设备地址段的设备
名称更改成“ Venomx ”,保存
5.6 配置文件设备地址段原内容
5.7 配置文件设备地址段更改后内容
3) 启动 Assets -> StreamingAssets->VRPN-> VenomxListener.exe ,该程序会自动监听 Venomx 手柄的按
键事件和摇杆轴事件。
5.8 Venomx 监听程序 上海曼恒数字技术股份有限公司
17
4) 此时,在 Unity 编辑器内当内容运行后,就能够接收到手柄的按键事件了。不过只能有按键的事
件,位置追踪和旋转是没有数据的,测试过程当中须要在 Scene 视窗中手动拖拽和旋转手柄位置,
因此不能在编辑器中测试手柄按住按键拖拽 UI 或物体的操做,只能利用现场环境的追踪系统了。
注:因版本问题,有可能会出现版本不一致形成此监听程序获取不到手柄的输入。遇到此类问题,请
确认 Venomx 手柄和接收器是否能够匹配版本为 1.0.1 Venomx 监听程序。 LinkVR 只提供 1.0.1 版本的
Venomx 监听程序。 上海曼恒数字技术股份有限公司
5.2 抗锯齿
因为 LinkVR 的双目渲染方式与 Unity MSAA 硬件抗锯齿不兼容,致使应用程序在打开后黑屏,所以
要想支持抗锯齿,可添加抗锯齿的脚本。当前在 FPSController -> FirstPersonCharacter 相机模板上已经添加
AntiAliasing 脚原本处理抗锯齿,此时 Camera 上的 MSAA 不要勾选。若开发者想用其余的抗锯齿方式,
可选择 Post Processing 插件或其余的抗锯齿插件。
5.9 抗锯齿
18 上海曼恒数字技术股份有限公司
5.3 UI 交互
002 – UIExample 案例中,有基本的 UI 交互示例。该案例中,在物体上添加了 UIInteraction 脚本,
该脚本是一个 UI 示例脚本,主要有如下功能:
1. Hover :手柄射线是否悬浮在 UI 按钮上
2. Button :手柄是否按下、抬起、长按
3. Slider :手柄控制滑动
4. Toggle :手柄控制切换键
5. Scrollview :手柄控制卷轴视图上下滑动
6. Dropdown :手柄控制下拉菜单并选择菜单中的内容
7. DragAndDrop :手柄控制拖放操做
5.10 UI 交互脚本示例
5.11 UI 交互视图
19 上海曼恒数字技术股份有限公司
5.4 瞬移功能
003 - TeleportExample 案例中,运行后能够进行瞬移操做。该案例中,在 FPSController ->
LinkVRSystemRoot 上添加了 LinkVRTeleport 脚本,该脚本主要有如下四个字段和三个委托:
1. enableTeleport (是否启用瞬移)
开发者可根据须要,来判断是否启用瞬移功能。
2. enableCameraFade (是否启用相机淡入淡出特效)
开发者可根据须要,来判断是否启用相机淡入淡出特效。
3. teleportButton (瞬移按键)
开发者可自定义用哪一个按键来控制瞬移(默认是手柄上键),按下该按键,会出现瞬移射线。
4. confirmButton (瞬移确认按键)
开发者可自定义是否须要瞬移确认键,当该属性为 None 时,抬起瞬移按键,则可直接瞬移至圆圈
点位置;其余状况下,须要按下指定的瞬移确认键,便可瞬移。
5. onArcShow (瞬移曲线出现时的回调)
开发者可根据须要,在瞬移曲线出现时添加想实现的事件。
6. onTeleportComplete (瞬移完成时的回调)
开发者可根据须要,在瞬移完成时添加想实现的事件。
7. onTeleportPointComplete (瞬移至瞬移点完成时的回调)
与瞬移完成时的回调互斥,开发者可根据须要,在瞬移至瞬移点完成时添加想实现的事件。
LinkVR 提供了瞬移点预制体: LinkVR->Prefabs->TeleportPoint ,可在场景中放置实现瞬移点功能。
20 上海曼恒数字技术股份有限公司
5.12 瞬移脚本
5.13 TeleportPoint
21 上海曼恒数字技术股份有限公司
5.14 瞬移视图
22 上海曼恒数字技术股份有限公司
23
6 核心类
如下内容仅简要介绍,若想了解更多关于 LinkVR Unity 中的脚本编程接口,请查阅插件包中 LinkVR
API 文档。
6.1 生成 LinkVR 结构
核心方法为 LinkVR.LinkVRDeserializer.Deserialize(Transform root, string path, GameObject
cameraTemplate) LinkVR 系统会自动调用此方法,在指定的 Transform 下生成相应的节点。
6.2 LinkVRGmotion 类的属性
Instance LinkVR Root 节点单例
IsDeveloperMode :是不是开发者模式
DeviceName :追踪设备的名称
DeviceIP :追踪设备的 IPv4 地址
ScreenType :屏幕属性 (弧幕 / 直幕)
Head :头部追踪节点,对应 G-motion 设备中的眼镜
Hands :手部追踪节点列表
Cameras :跟随头部追踪点的相机节点列表
IsServer :是不是主端
ServerIP :配置文件中的主端 IP 地址,在多台渲染机环境下,做为转发人物位置信息的主端
ClientIP :配置文件中的从端 IP 地址列表,在多台渲染机环境下,做为接收人物位置信息的从端
EyeSeparation :开启主动立体时,双眼之间的间距 (注: 1.4 及如下版本有效, 1.5 及以上版本废
弃, 1.5 及以上版本的眼间距在解析配置文件时已赋值给相机)
HeadIndex :眼镜标记体的序号
HandIndex :手柄标记体的序号
IsSingleClient :是否采用 1 N 模式 (注: 1.4 及如下版本有效, 1.5 及以上版本废弃)
Joystick :第一个手柄节点的实例 上海曼恒数字技术股份有限公司
24
6.3 LinkVRMoveManager 类的属性
Instance LinkVR LinkVRMoveManager 单例
rootTransform LinkVRSystemRoot 节点的父级 Transform ,父级主要用于第一人称视角
FlySpeed :飞行模式下的飞行速度
FlyRotateSpeed :飞行模式下的旋转速度
IsFlyMode :是不是飞行模式
6.4 LinkVRCamera 类的属性
Tracker :头部结点(父级节点),对应 LinkVRGmotion 中的 Head
IPAddress :相机所属渲染机的 IPv4 地址,当客户端的网络地址与此相同时,此相机节点被激活,
而其余相机节点则保持关闭状态。
RefScreen :相机成像的屏幕物体,相机位置、屏幕位置、屏幕大小共同决定了相机的投影矩阵,
使相机永远朝向此屏幕。
Near :相机的近裁剪面
Far :相机的远裁剪面
StereoSeparation :相机眼间距
ResolutinWidth :屏幕分辨率 -
ResolutionHeight :屏幕分辨率 -
ScreenMappingRowIndex 1 N 模式下,对应屏幕的行号 (注: 1.4 及如下版本有效, 1.5 及以上
版本废弃)
ScreenMappingColumnIndex 1 N 模式下,对应屏幕的列号 (注: 1.4 及如下版本有效, 1.5
以上版本废弃)
ViewportRectWidth :相机视口起始水平位置
ViewportRectHeight :相机视口起始垂直位置
ViewportRectX :相机视口宽度
ViewportRectY :相机视口高度 上海曼恒数字技术股份有限公司
25
6.5 JoystickTracker 类的属性和方法
属性:
Address VRPN 追踪点的网络地址
Channel VRPN 追踪点的传输通道
OnRefresh :刷新委托,能够将自定义的关于手柄刷新时的操做绑定到该委托上
Axises :手柄全部摇杆轴
Buttons :手柄全部按键
IsRaycastOn :是否启用射线,启用则会触发 [onEnter] [onExit] [onHover] 事件以及 UI 事件
RaycastDistance :射线长度
LayerMask :响应射线的层级
Ray :手柄发射的射线
Hit :手柄射线所获取的信息
UIEventCamera :接收 UI 事件的相机
onEnter :手柄射线进入物体时触发的委托
onExit :手柄射线离开物体时触发
onHover :手柄射线悬停在物体上时触发
Refresh :在 FixedUpdate 中刷新手柄物理状态,包括位置、旋转、 UI 响应事件的相机的焦点、
射线触发
RefreshInput :在 Update 中刷新手柄输入状态,包括按键的点击、摇杆轴的偏移值
方法:
GetButton(int index) :获取指定按键是否被持续按下
GetButtonDown(int index) :获取指定按键是否被按下
GetButtonUp(int index) :获取指定按键是否被抬起 上海曼恒数字技术股份有限公司
26
6.6 JoystickTracker.Button 类的属性和方法
属性:
ClickInterval :规定当前按键的点击事件中按键按下和抬起的时间间隔,超过该值则不触发点击事
IsDown :当前按键的状态
方法:
onButtonDown :当前按键被按下时触发的委托
onButtonUp :当前按键被抬起时触发的委托
onButtonPress :当前按键被持续按下时触发的委托
onClick :当前按键被点击时触发委托
SetState :设置当前按键的状态
6.7 JoystickTracker. Axis 类的属性和方法
属性:
Threshold :当前轴被断定为改变的阈值,小于该值被断定为偏移值没有改变
Value :当前轴的偏移值
方法:
onAxisChanged :当前轴被偏移时触发的委托
SetAxis :设置当前轴的偏移值
6.8 LinkVRInput 类获取手柄输入
Joystick :手柄实体
JoystickTransform :手柄实体的 Transform
GetButton(int index) :获取指定按键是否被持续按下
GetButtonDown(int index) :获取指定按键是否被按下
GetButtonUp(int index) :获取指定按键是否被抬起
GetAxise(int index) :获取摇杆指定轴向的偏移值
GetAxis(AxisType axis) :获取摇杆指定轴向的偏移值 上海曼恒数字技术股份有限公司
7 案例发布
7.1 设置 PlayerSettings
7.1 设置 PlayerSettings
27 上海曼恒数字技术股份有限公司
7.2 设置 QualitySettings
目前,若是 Unity 工程在发布时选择的是采用 OpenGLCore 渲染,因为 LinkVR 的双目渲染方式与 Unity
MSAA 硬件抗锯齿不兼容,致使应用程序在打开后黑屏,所以须要把抗锯齿选项设置为 Disabled 。同时,
确保 Async Upload Buffer Size = 4 ,不然会影响立体显示。
7.2 设置抗锯齿
28 上海曼恒数字技术股份有限公司
29
7.3 注意事项
1. 在多台渲染机电脑的环境下,动画系统和粒子系统的同步,须要关闭动画系统或粒子系统中的随
机变量,并保证案例内容同时启动。
2. Unity 发布设置状况
1) 若是 Unity 工程在发布时选择的是采用 OpenGLCore 渲染,务必将 QualitySettings 中的抗锯齿
属性设置为不开启, LinkVR 的双目渲染方式与 Unity MSAA 硬件抗锯齿不兼容,致使应用
程序在打开后黑屏。
2) 若是 Unity 工程在发布时选择的是采用 Direct3D 11 渲染,在颜色空间设置项中务必选择
Gamma 选项, Linear 颜色空间会破坏立体渲染,这是 Direct3D 的一个限制。
3) 另外,在 Windows7 系统中,采用 Direct3D 11 渲染的应用程序不支持主动立体,在 Windows10
系统中,两种渲染方式都支持主动立体。
4) LinkVR Unity SDK 默认采用并推荐的渲染方式是 OpenGLCore ,由于它在系统方面的兼容性更
好。若是项目须要,您能够不勾选 Automatically Check And Set Project Settings ,并手动设置
为采用 Direct3D 11 渲染,但须要知晓其在主动立体方面的限制。
3. Unity Shader 支持状况:
1) 水的 Shader 有限制。
a) 启用主动立体后形成的影响( OpenGL 环境):
启动案例后能进入场景,但屏幕闪烁,带有 Unity Logo 一块儿闪烁。
b) 规避方法:检查项目中是否有用到水,给水换一个材质或 Shader
2) 某些 Direct3D 渲染使用的 shader OpenGLCore 渲染环境下不支持。
4. Unity 视频支持状况:
1) 支持 MovieTextrue
2) 支持 VideoPlayer ,可是视频不宜过大或过多,不然会致使占用 GPU 过大,立体刷新帧率降
低,形成画面抖动。
3) 能够选择其余视频插件。
相关文章
相关标签/搜索