- 用户指南
- Components
- 寻路
- 动画组件
- 资源组件
- 音频组件(AudioComponent)
- 音频侦听器(AudioListener)
- 音频源(AudioSource)
- 音频过滤器(AudioFilter)(仅限专业版)
- 混响区域(ReverbZone)
- 麦克风(Microphone)
- 物理组件(PhysicsComponent)
- 箱体碰撞体(BoxCollider)
- 胶囊碰撞体(CapsuleCollider)
- 角色控制器(CharacterController)
- 角色关节(CharacterJoint)
- 可配置关节(ConfigurableJoint)
- 恒定力(ConstantForce)
- 固定关节(FixedJoint)
- 铰链关节(HingeJoint)
- 网格碰撞体(MeshCollider)
- 物理材质(PhysicsMaterial)
- 刚体(Rigidbody)
- (SphereCollider)
- 弹簧关节(SpringJoint)
- 交互布(InteractiveCloth)
- 蒙皮布(SkinnedCloth)
- 车轮碰撞体(WheelCollider)
- 游戏对象(GameObject)
- 图像效果(ImageEffectScripts)
- 高光溢出和镜头光晕(BloomandLensFlare)
- 模糊(Blur)
- 相机运动模糊(MotionBlur)
- 颜色修正曲线(ColorCorrectionCurve)
- 颜色修正(ColorCorrection)
- 颜色修正查找纹理(ColorCorrectionLookupTexture)
- 对比度增强(ContrastEnhance)
- 对比度拉伸(ContrastStretch)
- 起皱(Crease)
- 视野深度(DepthofField)3.4
- 视野深度(DepthofField)
- 边缘检测(EdgeDetection)
- 鱼眼(Fisheye)
- 全局雾(GlobalFog)
- 发光(Glow)
- 灰度(Grayscale)
- 运动模糊(MotionBlur)
- 噪波和颗粒(NoiseAndGrain)
- 噪波(Noise)
- 屏幕叠加(ScreenOverlay)
- 棕褐色调(SepiaTone)
- 边缘检测效应
- 阳光照射(SunShaft)
- 屏幕空间环境光遮蔽(SSAO)(ScreenSpaceAmbientOcclusion(SSAO))
- 倾斜位移(TiltShift)
- 色调映射(Tonemapping)
- 旋转(Twirl)
- 渐晕(Vignetting)(和色差(ChromaticAberration))
- 状态同步详细信息
- 旋涡
- 设置管理器(SettingsManager)
- 网格组件(MeshComponents)
- 网络组
- 效果
- 渲染组件
- 变换组件(TransformComponent)
- UnityGUI组
- 向导
- 地形引擎指南(TerrainEngineGuide)
- 树木创建器指南
- 动画视图指南
- GUI脚本指南
- 网络参考指南
- 移动设备上的网络连接
- 高级网络概念
- Unity中的网络元素
- RPC详细信息
- NetworkLevelLoading
- 主服务器
- 最小化网络带宽
- 社交API
- 内置着色器指南
- Unity的后台渲染
- 着色器参考
- ShaderLab语法:Shader
- ShaderLab语法:Properties
- ShaderLab语法:子着色器(SubShader)
- ShaderLab语法:Pass
- ShaderLabsyntax:Color,Material,Lighting
- ShaderLab语法:剔除和深度测试(Culling&DepthTesting)
- ShaderLab语法:纹理组合器(TextureCombiners)
- ShaderLab语法:雾(Fog)
- ShaderLab语法:Alpha测试(Alphatesting)
- ShaderLab语法:混合(Blending)
- ShaderLab语法:通道标记(PassTags)
- ShaderLab语法:名称(Name)
- ShaderLab语法:绑定通道(BindChannels)
- ShaderLab语法:使用通道(UsePass)
- ShaderLab语法:GrabPass
- ShaderLab语法:子着色器标记(SubShaderTags)
- ShaderLab语法:回退(Fallback)
- ShaderLab语法:自定义编辑器(CustomEditor)
- ShaderLab语法:其他命令
- ShaderLab语法:Pass
- 高级ShaderLab主题
- ShaderLab内置值
- 其他
- 网络视图
- 导航网格 (Navmesh) 和寻路 (Pathfinding)(仅限专业版 (Pro))
- Mecanim 动画系统
- 动画状态机
- 混合树 (Blend Tree)
- 在 Mecanim 中使用动画曲线 (Animation Curves)(仅限专业版 (Pro))
- 循环动画片段
- Animation State Machine Preview (solo and mute)
- 动画参数
- 旧动画系统
- 使用类人动画
- 动画层
- 资源导入与创建
- 音轨模块
- 减少文件大小
- 光照贴图 UV
- 资源准备和导入
- 如何安装或升级标准资源 (Standard Assets)?
- FBX 导出指南
- 从 Maya 中导入对象
- 从 Cinema 4D 中导入对象
- 从 3D Studio Max 中导入对象
- 从 Cheetah3D 中导入对象
- 从 Modo 中导入对象
- 从 Lightwave 中导入对象
- 从 Blender 中导入对象
- 为优化性能建模角色
- 如何使用法线贴图 (NormalMaps)?
- 如何修正已导入模型的旋转?
- 程序材质
- 如何使用水?
- 分析器(仅限专业版)
- 绘制调用批处理
- 遮挡剔除(仅限专业版)
- Unity 中的高动态范围 (High Dynamic Range) 渲染
- 在 Unity 4 中使用 DirectX 11
- 文本场景文件格式(仅限专业版)
- 使用网络播放器模版
- 平台依赖编译
- 日志文件
- 首选项
- 粒子系统曲线编辑器
- 渐变编辑器
- 怎样制作网格粒子发射器?(旧粒子系统)
- 深入了解光照贴图
- 光照贴图快速入门
- 着色器
- 动画脚本(旧版)
- 自定义
- 布局模式
- 扩展编辑器
- 网络实例化
- 材质和着色器
- 如何使用细节纹理?
- 着色器:顶点和片段程序
- Unity 中的阴影
使用网络播放器模版
构建网络播放器工程时,Unity 将播放器嵌入到 HTML 页面中,以便可以在浏览器中播放。默认页面非常简单,只有白色背景和部分最小文本。事实上,该页面有三种不同形式,可从播放器设置 (Player Settings) 检视器(菜单:编辑 (Edit) > 工程设置 (Project Settings)> 播放器 (Player))中选择。
内置 HTML 页面可以用来测试和显示最小化播放器,但是出于制作目的,通常来说看到播放器托管在最终部署的页面是大家所乐见的。例如,如果 Unity 内容通过外部调用接口与页面上的其他元素交互,那么就必须经过提供 这些交互元素的页面测试。Unity 允许通过使用网络播放器模版提供 自己的页面来托管播放器。
网络播放器模版的架构
通过在资源 (Assets) 文件夹中创建一个名为 “WebPlayerTemplates” 的文件夹将自定义模版添加到工程当中,模版本身为该文件夹下的子文件夹。每个模版文件夹包含一个 index.html 或 index.php 文件,以及页面需要的任何其他资源,如图像或样式表。
建完后模版会出现在播放器设置 (Player Settings) 检视器的选项中(模版名称与其文件夹名称相同)。视情况需要,文件夹可包含一个名为 thumbnail.png 的文件,尺寸为 128x128 像素。缩略图将显示在检视器中,提示完成的页面的显示效果。
模版标签
创建过程中,Unity 会在页面文本中查找一个特殊的标签字符串,并以编辑器提供 的值替换它们。其中包括名称、屏幕尺寸及关于播放器的许多其他有用信息。
在页面源代码中,标签限定在百分比符号 (%) 内。例如,如果产品名称在播放器设置 (Player Settings) 中定义为 “MyPlayer”:-
<title>%UNITY_WEB_NAME%</title>
…在模版的索引文件中会被替换为
<title>MyPlayer</title>
…生成构建的主机页。完整标签如下:-
UNITY_WEB_NAME
网络播放器的名称。
UNITY_WIDTH
UNITY_HEIGHT
播放器屏幕的宽和高(以像素表示)。
UNITY_WEB_PATH
网络播放器文件的本地路径。
UNITY_UNITYOBJECT_LOCAL
名为 UnityObject2.js 的浏览器 JavaScript 文件一般用于嵌入主机页的播放器中,并提供 Unity 与主机 JavaScript 之间的部分交互。一般通过从 Unity 网站上下载来提供 给页面。但是需要有 Internet 连接,如果页面从用户的硬盘驱动器中脱机部署,会引发问题。该标签为 UnityObject.js 文件提供 本地路径,如果在构建设置 (Build Settings) 中启用脱机部署 (Offline Deployment) 就会生成。
UNITY_UNITYOBJECT_URL
一般情况下,页面会从 Unity 网站(例如禁用脱机部署 (Offline Deployment) 选项)上下载 UnityObject2.js,该标签会提供 下载链接。
UNITY_UNITYOBJECT_DEPENDENCIES
UnityObject2.js 具有相关性,该标签会被所需的依赖关系替代,以便正常工作。
UNITY_BETA_WARNING
如果网络播放器已发布了 Unity 测试版,该标签会被一条有关该事实的简短警告信息所替代。否则不会被任何内容替代。
UNITY_CUSTOM_SOME_TAG
如果以 UNITY_CUSTOM_XXX 的格式给索引文件添加标签,那么选择模版时该标签会出现在播放器设置 (Player Settings) 中。例如,如果像
<title>Unity Web Player | %UNITY_CUSTOM_MYTAG%</title>
…这样的内容添加到源代码中,播放器设置 (Player Settings) 会变成:-
标签名称旁的文本框包含发布期间自定义标签会被替换的文本。
示例
为了说明模版标签的用法,以下是 Unity 用于其默认网络播放器发布的 HTML 源代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Unity Web Player | %UNITY_WEB_NAME%</title> %UNITY_UNITYOBJECT_DEPENDENCIES% <script type="text/javascript"> <!-- var unityObjectUrl = "%UNITY_UNITYOBJECT_URL%"; if (document.location.protocol == 'https:') unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-"); document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>'); --> </script> <script type="text/javascript"> <!-- jQuery(function() { var config = { width: %UNITY_WIDTH%, height: %UNITY_HEIGHT%, params: %UNITY_PLAYER_PARAMS% }; var u = new UnityObject2(config); var $missingScreen = jQuery("#unityPlayer").find(".missing"); var $brokenScreen = jQuery("#unityPlayer").find(".broken"); $missingScreen.hide(); $brokenScreen.hide(); u.observeProgress(function (progress) { switch(progress.pluginStatus) { case "broken": $brokenScreen.find("a").click(function (e) { e.stopPropagation(); e.preventDefault(); u.installPlugin(); return false; }); $brokenScreen.show(); break; case "missing": $missingScreen.find("a").click(function (e) { e.stopPropagation(); e.preventDefault(); u.installPlugin(); return false; }); $missingScreen.show(); break; case "installed": $missingScreen.remove(); break; case "first": break; } }); u.initPlugin(jQuery("#unityPlayer")[0], "%UNITY_WEB_PATH%"); }); --> </script> <style type="text/css"> <!-- body { font-family: Helvetica, Verdana, Arial, sans-serif; background-color: white; color: black; text-align: center; } a:link, a:visited { color: #000; } a:active, a:hover { color: #666; } p.header { font-size: small; } p.header span { font-weight: bold; } p.footer { font-size: x-small; } div.content { margin: auto; width: %UNITY_WIDTH%px; } div.broken, div.missing { margin: auto; position: relative; top: 50%; width: 193px; } div.broken a, div.missing a { height: 63px; position: relative; top: -31px; } div.broken img, div.missing img { border-width: 0px; } div.broken { display: none; } div#unityPlayer { cursor: default; height: %UNITY_HEIGHT%px; width: %UNITY_WIDTH%px; } --> </style> </head> <body> <p class="header"><span>Unity Web Player | </span>%UNITY_WEB_NAME%</p>%UNITY_BETA_WARNING% <div class="content"> <div id="unityPlayer"> <div class="missing"> <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!"> <img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" /> </a> </div> <div class="broken"> <a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now! Restart your browser after install."> <img alt="Unity Web Player. Install now! Restart your browser after install." src="http://webplayer.unity3d.com/installation/getunityrestart.png" width="193" height="63" /> </a> </div> </div> </div> <p class="footer">« created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> »</p> </body> </html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论