本文首发于洪流学堂微信公众号。
洪流学堂,学Unity快人几步
2018.1.0f2发行说明(完整)
系统要求更改
- 在独立播放器版本中删除了对Windows XP的支持。Windows Vista是Windows独立播放器支持的最低操作系统。
- 已弃用对MonoDevelop的支持。VisualStudio现在是MacOS和Windows推荐和支持的C#编辑器。
- 删除了Tizen支持。
包
- 服务:更新Unity广告(com.unity.ads)至V2.0.7。
- 请注意,这不会与Unity Ads SDK版本(v2.1.1)相混淆。
- 服务:将Analytics(com.unity.analytics)更新至v2.0.16
- 服务:更新了IAP(com.unity.purchasing)至v2.0.1
- 服务:将标准事件(com.unity.standardevents)更新为v1.0.13
- 编辑器:增加了包管理器UIv1.8.8(com.unity.package-manager-ui)
- 请注意,该软件包的1.8.X版已经过验证,可与2018.1一起使用。版本1.9.x(或更新版本)可能通过软件包管理器UI本身提供下载,但未经2018.1官方验证。
- 请参阅“功能”一节中的条目了解更多详情
特征
- 2D:[实验]添加实验性API以支持Sprite动画。
- 2D:[实验]添加了在Sprite编辑器窗口中添加Sprite编辑功能的功能。
- Android:添加了一个新接口,
IPostGenerateGradleAndroidProject
在生成Android Gradle项目之后,在构建工程之前调用的回调。 - Android:增加了一种新设置,即持续性能模式,该模式可在较长时间内设置可预测的一致性设备性能,而无需热调节。
- Android:增加了ARM64(也称为AArch64)实验支持。
- 动画:添加了位置约束,旋转约束和缩放约束组件。
- 另请参阅“创建约束”和“约束激活”项目。
- 动画:添加新的Parent Constraint组件。
- 添加了多源动画
- 动画:添加了Aim Constraint组件。
- 动画:为AnimationCurve添加了加权切线支持。
- 动画:约束激活
- 动画:约束创建
- 资产导入:添加了对从FBX文件导入Aim约束的支持。
- 资产导入:增加了对从FBX文件导入Parent Constraints的支持。
- 资产导入:添加了对从FBX文件导入Point,Orient和Scale限制的支持。
- 资产导入:添加
OnPreprocessAsset
回调AssetPostprocessor
(另请参阅API更改)。 - 资产导入:[实验]添加实验性API以从导入器设置生成纹理/精灵。
- 音频:添加了Google的共鸣音频插件。
- 构建管道:增加了按名称存储和检索GameObject引用的功能
EditorBuildSettings
。 - 构建管道:增加了用于更改平台图标的新API。它支持平台特定的图标类型和多层图标。有关更多信息,请参阅PlayerSettings.SetPlatformIcons上的文档。
- 构建管道:添加新的
BuildReport
API。Building Players和AssetBundles现在返回一个BuildReport
对象,该对象允许您查询有关构建过程和输出的信息。 - Build Buildline:Android Build&Run now在Build Settings中有目标设备选择。这使您可以同时部署到特定的单个设备或所有受支持的设备。
- 缓存服务器:添加
-CacheServerIPAddress
命令行参数,以便在编辑器启动时将其连接到指定的缓存服务器 - 编辑器:在Unity Profiler窗口中添加了Clear on play按钮。
- 编辑器:添加了一个预设类,允许您将有关GameObject的序列化信息保存到.preset Asset中,并稍后将其应用于相同的GameObject类型。
- 编辑器:添加新的
ObjectFactory
API,允许您使用默认值创建一个GameObject。有关更多详细信息,请参阅有关预设的脚本API和文档。 - 编辑器:为3D,2D,3D与Extras(预览),轻量级(预览),轻量级VR(预览)和高清晰度(预览)添加模板,通过可编写脚本的渲染管线功能简化新的用户体验,更好的图形,玩家和照明设置的起点。
- 编辑器:Unity现在在任何其他脚本(如Assembly-CSharp.dll)之前在启动时编译程序集定义文件(asmdef)程序集,并且不会停止编译第一个编译错误。统一加载所有成功编译并编译所有引用的asmdef程序集,然后编译剩余的脚本(Assembly-CSharp.dll和好友)。这确保Unity程序包始终被构建和加载,无论Project中是否存在其他编译错误。
- 编辑器:在批处理模式下运行PlayMode和EditMode测试时,您现在可以通过测试设置文件指定要使用哪个脚本后端。
- GI:Progressive Lightmapper现在已经正式发布!
- GI:[实验]在Progressive Lightmapper中添加了烘焙天空遮挡的实验API。给定输入位置的天空遮挡值定义了该点可见的天空分数。它考虑到了任何静态GameObjects。天空遮挡允许您将正确数量的天空照明应用于难以光照贴图的GameObjects,如树木和树叶。
- GI:[实验]添加新的实验性C#接口,将光信息传递给GI烘焙后端。
- 图形:增加了对Playstation 4的动态分辨率支持。
- 图形:GPU Instancing现在支持GI。
- Unity现在可以自动将受光探测器,遮挡探测器(在Shadowmask模式下)或光照贴图影响的GameObjects与Foward和Deferred管道批处理。
- Unity可以发送Light Probe和Occlusion Probe数据以
Graphics.DrawMeshInstanced
使用该LightProbeUsage.CustomProvided
模式。 - 添加了新的API来计算探测数据并将其复制到
MaterialPropertyBlock
:LightProbes.CalculateInterpolatedLightAndOcclusionProbes
,MaterialPropertyBlock.CopySHCoefficientArrayFrom
,MaterialPropertyBlock.CopyProbeOcclusionArrayFrom
。
- 图形:金属:通过船体/域着色器阶段增加了对使用DX11约定进行镶嵌细分的支持。
- 图形:[预览]高清(HD)渲染管线(2018.1预览版):构建在可编写脚本渲染管线(SRP)上的现代渲染器。
- 在这里查看文档:高清渲染管线概述
- Blogpost:高清渲染管线:专注于视觉质量
- 启动器:启动器现在允许用户在创建新项目时选择新的项目模板之一。当前可用的项目模板: 2D,3D,3D Extras(预览),Lightweight(预览),Lightweight VR(预览)和High Definition(预览)。
- 多人游戏:现在您可以将Unity设置为在需要阅读内容或连接准备好发送信息时向您发送有关已定义回调的通知。
- OSX:为Mac Standalone播放器增加了对IL2CPP脚本后端的支持。
- 软件包管理器:添加软件包管理器用户界面,允许您管理项目软件包并发现新软件包。
- 包管理器UI本身就是一个包,目前版本为1.8.8。该包的版本1.8.x已经过验证,可用于2018.1。版本1.9.x或更新版本可以通过软件包管理器UI本身下载,但未经2018.1官方验证。
- 从编辑器主菜单(窗口>包管理器)打开包管理器。
- “项目中”选项卡显示当前项目中的包(和版本)。
- “全部”选项卡显示此版本的Unity可用的其他软件包:包括当前项目中的预览软件包和更新版本的软件包。
- 右侧窗格显示有关软件包的信息,并包含指向软件包文档的链接。
- 粒子:增加了对粒子系统网格渲染的GPU实例支持。
- 粒子:在Velocity over Lifetime模块中增加了对轨道速度的支持。
- 粒子:所有粒子发射器形状现在支持读取纹理进行掩蔽和颜色着色。
- Physics:2D Physics现在可以使用设备上的所有内核来运行其仿真。请参阅2D物理设置中的作业选项(实验)。
- 播放器:添加了一个实验性API
UnityEngine.Experimental.LowLevel.PlayerLoop
。这使您可以更改Unity调用引擎系统的顺序,从更新顺序中删除引擎系统,或者在更新周期的任何时候插入新的C#入口点。 - 脚本:
overrideMonoSearchPath
为桌面独立播放器(OSX,Windows)添加了新的命令行选项。这指定了Mono加载程序集时要搜索的额外文件夹。您可以使用它来重新使用资产但加载不同的脚本。 - 脚本升级:在使用新的脚本运行时运行时添加了对可移植PDB的支持。
- 脚本升级:脚本运行时升级不再处于实验阶段。
- 视频:为VideoPlayer添加了音频样本输出API,支持从C#或C ++进行访问。
- 视频:增加了对从Android上的AssetBundles阅读视频的支持。
- 网络:添加了自定义证书验证支持
UnityWebRequest
。有关CertificateHandler
更多信息,请参阅脚本文档 - 网络:添加
UploadHandlerFile
了UnityWebRequest
。这会将文件内容作为请求主体发送,而不会将整个文件加载到内存中。 - Windows:增加了对Windows独立播放器的IL2CPP脚本后端的支持。
- XR:增加了360度立体图像捕捉,支持将渲染纹理(立方体贴图)转换为立体声和单色等矩形格式以在VR中显示。增加了新的API:
RenderTexture.ConvertToEquirect()
。 - XR:在Windows MR播放器设置中添加了一个名为启用深度缓冲区共享的新选项。这使操作系统能够更好地稳定图像,而无需手动设置焦平面。
- XR:增加了独立播放器支持在Win64 / macOS平台上进行VR和非VR项目的立体360度图像捕捉。
- 在构建独立播放器时,使用VR 编辑器设置面板中的360立体声捕捉 UI复选框生成360度捕捉着色器变体。
- 增加了
PlayerSettings.enable360StereoCapture
绑定。
- XR:增加了为VR和非VR项目捕获立体360度图像的支持。在Shader管线中增加了全向立体声(ODS)支持,以渲染到360度立体立方体贴图。
- 增加了对正向/延迟管线,定向/点光源阴影,Skybox,MSAA,HDR和后期处理堆栈的360度立体立方体贴图渲染支持。
- 通过单独的ODS世界空间传递和渲染纹理添加了对屏幕空间阴影的ODS渲染支持,以避免每只眼睛产生不正确的阴影。
- 新增立体声
RenderToCubemap
API脚本支持:camera.RenderToCubemap
立体声眼睛参数。
向后兼容性突破性变化
- 粒子:删除遗留粒子系统脚本绑定。
- Tizen:删除了Tizen移动支持。
变化
- Android:当打开键盘时,现在输入字段字符总是出现在文本的末尾。(966477)
- Android:新创建的项目现在默认为ARMv7 CPU架构。
- Android:删除支持
UnityPlayerProxyActivity
。 - Android:SDK平台26现在需要为Android构建。
- Android:Unity现在创建一个用于签署APK的2048位RSA密钥。
- Android:将JDK需求更新为JDK 8.这是来自最新Android SDK的需求。
- 动画:在编辑头像配置时开始播放模式将不再改变当前场景。(916586)
- 音频:调用时
AudioSource.GetSpectrumData
或AudioListener.GetSpectrumData
浮动阵列的功率不是2或超出64和8192采样之间的有效范围时添加错误消息。(827154) - 编辑器:添加
InspectorWindow.OnPostHeaderGUI
回调以允许在巡视窗口中绘制自定义GUI元素。 - 编辑器:编译'不安全'C#代码现在需要在预定义程序集(Assembly-CSharp.dll等)的播放器设置中以及组件定义文件程序集的检查器中启用“允许”不安全“代码”选项。启用此选项将使Unity
/unsafe
在编译脚本时将选项传递给C#编译器。 - 编辑器:从macOS和Windows安装程序中删除了MonoDevelop 5.9.6,并且在Unity中不支持它。Visual Studio for Mac作为MacOS上的C#代码编辑器和Windows上的Visual Studio 2017社区安装。
- 编辑器:删除材质编辑器中HDR纹理字段旁边的“强度”浮动字段。改用颜色选择器中的曝光控制。
- 编辑器:在Light Explorer的Static Emissives选项卡中替代HDR颜色字段中的“intensity”float字段; 而是使用拾色器中的曝光控制。
- 编辑器:创建用于使用IMGUI进行渲染的纹理的插件代码现在应避免在线性空间中指定它们(即应在
Texture2D
构造函数中将线性参数设置为false )。否则,使用这种纹理绘制的GUI元素在线性空间(球员设置>色彩空间:线性)中工作时看起来可能会被淘汰。(908904) - GI:在制作渲染管道时支持隐藏和禁用GI功能。
- 图形:已弃用
PlayerSettings.defaultIsFullscreen
。Use PlayerSettings.fullscreenMode
代替。 - 图形:GraphicsSettings着色器在启动时不再加载。
- 图形:金属镶嵌:改进了着色器导入错误报告,以便在不支持要素的时候。
- IL2CPP:已弃用
BuildOptions.IL2CPP
,从未实际做过任何事情。(986326) - iOS:将最低目标iOS版本提高到8.0。
- iOS:iOS现在默认与安全框架链接。要删除它,设置一个预处理器
DISABLE_WEBREQUEST_CERTIFICATE_CALLBACK
并从Xcode中的链接框架列表中删除“Security”。 - iOS:
ScreenOrientation.Unknown
已弃用。 - OSX:Metal现在是编辑器的默认图形后端。
- 包管理器:Unity包管理器项目子文件夹已从UnityPackageManager移至包。这是为了将物理路径与包的逻辑路径对齐。笔记:
- 使用NuGet配置的项目应该将其配置更改为指向另一个文件夹(NuGet配置的默认存储库路径为\ packages)。NuGet和Unity Package Manager共享Packages文件夹的风险很小,但我们建议将它们分开以避免任何问题。
- 打开使用先前版本创建的项目时,迁移流程会将UnityPackageManager文件夹的内容复制到Packages文件夹。项目维护人员需要清除UnityPackageManager文件夹并更新源代码管理配置。
- 服务:使用改进的RMGUI版本替换了基于Web的Collab历史记录窗口。
- 物质:物质设计器材料的内置支持在Unity 2017.3中已弃用,并将在2018.1中删除。要继续在Unity 2018.1中使用Substance Designer材料,您需要从Asset Store安装合适的第三方外部导入器。
- 通用Windows平台:在本地机器上运行时,Build&Run now默认为64位播放器。
- Web:UnityWebRequest的AssetBundle相关部分已被拆分成新模块,允许使用UnityWebRequest而无需拉入AssetBundle模块。API更改:
UnityWebRequest.GetAssetBundle
- >UnityWebRequestAssetBundle.GetAssetBundle
。 - WebGL:从WebAssembly链接器目标中移除实验标签。
- Windows:在独立播放器版本中删除了对Windows XP的支持。Windows Vista是现在支持的最低操作系统。
- Windows:构建Windows独立播放器时,Build Player位置选择对话框现在要求输入文件夹而不是文件名。该
BuildPipeline.BuildPlayer
API不受这种变化。(995320) - XR:面向Windows混合现实的独立UWP应用程序现在会导致操作系统在未安装混合现实组件或未连接耳机时通知您,而不是静默地回退到非VR桌面模式。
- XR:更新Google VR:
- 到Android 1.130
- 到iOS的1.120
改进
- Android:自API 26以来,在设置最大纵横比时添加了使用活动属性的功能。
- Android:为脚本和编辑添加API 26和27。
- Android:增加了对线性渲染的支持,而无需在Android O上添加全屏幕blit。
- Android:增加了
GUIUtility.systemCopyBuffer
支持。 - Android:已添加
InputTouch.radius
和InputTouch.radiusVariance
属性(目前适用于一组有限的设备)。 - Android:改进着色器编译时间。
- Android:改进
Ping
支持ICMP套接字的设备的类别性能。更多信息添加到Ping
脚本文档。(972519,1005103) - Android:如果您没有在首选项中填写,则Unity现在可以稍微智能地猜测Android SDK的位置。
- Android:Unity现在将产品名称标记为Unity的默认Android横幅,以便更容易区分横幅用于展示应用的Android设备上的应用。
- Android:更新Gradle模板以不去除* .so文件中的符号,因为它们已经在需要的地方被剥离。
- Android:[Gradle]添加更多变量
build.gradle
。 - 动画:转换退出时间条件现在可用于负状态速度参数。(941112)
- 动画:在录制动画时使用检查器中的重置为当前帧处的每个受支持的修改属性创建一个键。(766821)
- 动画:
AnimationUtility.SetAnimationEvents
现在AnimationEvent
按时间排序。(913430) - 资产导入:在优化模式下,如果在未优化的SkinnedMeshRenderer中指定了根骨骼,并且其转换已公开,则它现在保持原样。否则,Unity会将其设置为root。(972082,988438)
- 音频:为本地音频插件界面添加了minDistance / maxDistance信息,因此spatializers可以实现近场效果。
- 音频:修复了主循环中大约0.7毫秒的音频分析器失速,即使是空的场景也会发生这种情况。
- 构建流水线:构建流程进度条现在显示具有超过100个变体的着色器的进度更新,以防止编辑器在长时间构建期间显示无响应。
- 文档:脚本参考现在显示实现了API的程序集。
- 编辑器:增加了光照贴图重叠可视化功
- 编辑器:添加重命名选项到项目视图的右键菜单。(773117)
- 编辑器:添加了在项目视图中复制任何只读子资产以获取可写副本的功能。选择任何子资产并转到编辑>重复。
- 编辑器:添加时间标尺,动态网格线,以及在Profiler时间轴中选择和缩放特定时间间隔的功能。
- 编辑器:添加
Application.wantsToQuit
和Application.quitting
事件到EditorApplication
,使用户能够控制编辑器退出过程。(802175) - 编辑器:添加
UnityEngine.TestTools.Utils
到Playmode测试框架。该名称空间包含实用程序类,用于比较'Vector2','Vector3','Vector4'Quaternion
,颜色和float
使用NUnit
约束的类型。 - 编辑器:当前许可证不支持平台时,澄清消息显示在“生成设置”窗口中。(957929)
- 编辑器:检查器中的HDR色域现在使用渐变叠加来指示最大颜色分量小于1/255的曝光不足的颜色。
- 编辑器:HDR色域现在总是与HDR徽章一起出现在Inspector中,无论其当前值如何。
- 编辑器:不再可能从Test Runner UI同时启动多个EditMode或PlayMode测试运行。(945000)
- 编辑器:优化编辑器启动时间。
- 编辑器:Profiler现在显示3帧上下文,并支持跨越多个帧的作业。
- 编辑器:Profiler窗口:提高了Hierarchy View的性能。
- 编辑器:重新设计了基于曝光的HDR控件的颜色选择器窗口。
- 编辑器:使用PropertyDrawer绘制序列化属性时,减少了每帧产生的一些堆分配。
- 编辑器:删除了针对macOS Sierra 10.12.1添加的WebView的解决方法。每次将WebView添加到主窗口时,这可防止Editor.log文件中出现警告消息。
- 编辑器:编辑器控制台窗口现在显示记录条目的时间戳。
- 编辑器:编辑器/游戏视图中的静音音频选项现在在编辑器重新加载后仍然存在。(785243)
- 编辑器:Unity现在增加了引用并定义了
mcs.rsp
为MonoDevelop,VS Code和Rider生成的.csproj。 - 编辑器:不受支持的着色器现在分组在材质检查器中的着色器选择下拉菜单中。
- 编辑器:您现在可以在Profiler窗口的“详细信息”部分中选择文本。(787073)
- 编辑器:
ExecuteMenuItem
现在可以退出macOS EditorApplication。 - GI:创造
LightingDataAsset
现在是一份工作。 - GI:将Enlighten SDK升级到版本:3.09.P1.62184
- 修复SetThreadAffinityMask崩溃,从新版本的Embree(CS-1196)
- 修复Iffrriter,使大于4GB的文件大小失败,而不是破坏文件。(CS-1193)
- 修复了
CalcPrecomputedVisibilityWorkspaceSize()
返回错误(CS-1204) - Unity不再为模式定义已分配默认值的不建议使用的属性发出警告。
- 图形: - 直接渲染并采样深度立方体贴图,无需额外的颜色RT。
- 为阴影点亮启用硬件PCF。
- 增加了对Vulkan的支持。
- 图形:添加选项到纹理导入器,为单通道纹理选择红色通道
- 增加了对R8未压缩格式的支持
- 增加了对EAC_R压缩纹理的支持
- 红色通道单通道纹理使用R8,EAC_R,BC4格式
- 图形:添加了新属性
ToggleUI
,您可以使用该属性在Shader的检查器中显示复选框而不生成关键字(不像Toggle
和ToggleOff
)。(986865) - 图形:增加了对ETC纹理的支持
Texture2D.PackTextures
,类似于DXT。 - 图形:添加
MeshRenderer.subMeshStartIndex
属性。 - 图形:更改为允许您将异步计算命令缓冲区附加到摄像机和灯光。
- 图形:为Vulkan启用实例化灵活的阵列大小。
- 图形:使用时改进了着色器导入处理
#pragma target
。如果你不使用#pragma geometry
,#pragma hull
或#pragma domain
语句指定入口点函数,统一下降从内部着色器的功能要求这些着色器功能(几何或细分),从而能够在整个非DX11显卡的目标更大的兼容性。在实践中,#pragma target 5.0
只要不使用几何着色器,现在就允许使用“ 金属”。 - 图形:改进
Mesh.CombineMeshes
为只包含选定子网格的顶点而不是整个网格。(895464) - 图形:在向前渲染中,当使用烘焙遮挡使用混合光照明动态游戏对象时,Unity不再获取2×2白色遮罩纹理。(952761)
- 图形:您现在可以直接渲染并采样深度立方体贴图,而无需额外的颜色RT。用于阴影点光源的硬件PCF现已启用。增加了对PS4,XB1,桌面GL Core,GLES3,WebGL 2.0,Metal的支持。
- IL2CPP:将C ++编译器配置设置添加到播放器设置。注意:此设置不会影响生成IDE项目而不是可执行文件的平台,例如iOS和UWP。
- iOS:添加了一个复选框到iOS插件导入器:选中后,插件添加到“嵌入的二进制文件”文件夹中。(984264)
- iOS:在使用Vuforia或ARKit时添加了默认的相机使用说明。(956291)
- iOS:添加了更改,以允许您在隐藏移动输入设置时通过触摸操作输入字段中的插入位置。
- iOS:添加ETC2作为iOS OpenGL ES3的纹理格式。
- iOS:增加了
GUIUtility.systemCopyBuffer
支持。 - iOS:改进了Xcode API中的iCould功能支持。
- iOS:改进着色器编译时间。
- iOS:改进了对Xcode API中plist规范的支持。
- iOS:iOS插件导入器扩展更新为支持新的iOS 11框架。
- 内核:改进了YAML文件读取的错误消息,以便它还报告文件名,这有助于解决元文件的合并冲突问题。
- 许可证:改进命令行激活的错误处理。(834325)
- Linux:增加了允许游戏提供自己的控制器配置文件的功能。
- Linux:改进了对未配置/非游戏手柄操纵杆的支持。
- 多人游戏:两个或更多频道现在可以共享消息顺序,以便通过不同频道发送的消息按顺序发送。
- OSX:为macOS安装程序添加了Visual Studio for Mac。
- OSX:使用Intel 6xxx系列GPU在High Sierra上使用GLCore时固定编辑器崩溃。(956196)
- 软件包管理器:当在软件包中使用相对路径包含时,允许编译表面着色器。
- 粒子:覆盖预检值现在在检查器中指示/突出显示。
- 粒子:当触发模块中满足条件时(例如粒子进入碰撞体积),现在可以触发子发射体。
- 粒子:您现在可以使用新的
TriggerSubEmitter
脚本API 从脚本触发子发射器。 - 分析:添加编辑器启动分析标记。
- 脚本:添加了一个脚本回调,在立方体贴图纹理完成导入(
AssetPostprocessor::OnPostprocessCubemap
)之前调用。 - 脚本:添加新的
GetAllocatedMemoryForGraphicsDriver
API。(896812) - 脚本:改进“此行为的引用脚本丢失!” 错误信息告诉你哪个脚本丢失,如果可能的话。
- 脚本:改进
FindObjectsOfType
了大型GameObject计数场景的性能特征。 - 服务:将Unity Ads SDK更新至v2.1.1。请注意,这是通过更新广告包到v2.0.7 - 详情请参阅“包裹”部分。
- 着色器:与之相比,添加了更详细的指定着色器编译要求的方式
#pragma target
。-
#pragma require
XYZ表示着色器需要的特定功能。 -
SHADER_REQUIRE_XYZ
并且SHADER_AVAILABLE_XYZ
预处理器定义被传递给着色器,基于哪些要素被请求或可用。
-
- 着色器:增加了对着色器的Windows支持,包括长度超过260个字符的绝对路径。
- 着色器:计算着色器现在包含在着色器缓存中。例如,调整着色器,然后恢复更改会从缓存中取回着色器,而不是重新编译。
- 着色器:计算着色器现在支持
#pragma exclude_renderers
和#pragma only_renderers
。 - 着色器:全局着色器属性现在可以用来计算着色器。如果该属性未在本地为计算着色器设置,则使用全局属性值。
- 着色器:改进着色器编译速度。
- 着色器:正确的着色器包括实现的依赖关系跟踪。每当着色器包含文件被修改时,所有依赖的着色器将被重新导入。(646064,916386,957024)
- 着色器:具有许多multi_compile / shader_feature变体的表面着色器现在可以快几倍地进入(在内部,Unity现在可以处理多线程)。
- 着色器:现在可以使用
SetPropertyBlock
每种材质(在多材质渲染器的情况下)以及可选的材质索引。 - 着色器:
ComputeShader.Dispatch
现在验证所有属性是否有效。 - 着色器:
UNITY_PASS_FORWARDBASE
,UNITY_PASSFORWARDADD
等现在定制顶点/片段着色根据通型也被定义。 - 时间表:增加了对自定义TrackAssets暴露引用的支持。(976409)
- 时间轴:添加了对录制的动画轨道剪辑的左修剪的支持。
- 时间轴:改进的剪辑视觉渲染。
- 时间轴:自动调整包含剪辑的动画轨迹时改进的工作流程。
- 时间轴:介绍在时间轴编辑器中编辑剪辑的新模式。
- 时间轴:TrackAssets现在允许通过基类规范的多个TrackClip类型。(950934)
- 用户界面:添加了切换前进宽度舍入的功能。这使您可以在文本网格中的字符之间获得更一致的间距。
- 通用Windows平台:添加了一个选项,用于在执行构建和运行时选择应使用哪个配置(调试/发布/主控)。
- 通用Windows平台:改进对将项目建设成更长路径的支持。
- 视频:在MediaEncoder API中增加了基本的视频比特率控制。
- 视频:在许多平台上通过作业系统进行视频解码(减少总体线程数并提高性能)。
- Web:使用自定义下载处理程序脚本提高了大数据下载的性能。
- Web:
UnityWebRequest
现在接受URI实例和字符串URL(URI更快)。(944500) - WebGL:为WebGL中的所有构建文件和已编译的WebAssembly代码添加了indexedDB缓存支持。
- WebGL:您现在可以覆盖
webglContextAttributes.premultipliedAlpha
。 - Windows:为Windows编辑器和Windows独立播放器添加了全新的进程外崩溃处理程序,从而提高了error.log和minidump生成的可靠性。
- Windows:增加了支持通过新的
SetResolution
API过载在Windows上启用/禁用独占模式。将特定于平台的全屏模式整合到单个跨平台FullScreenMode
API中。 - Windows:崩溃处理方面的多项改进:
- 启用性能报告服务的Unity应用程序现在可以接收Windows崩溃遥测。
- 现在崩溃拦截更为可靠,在应用程序生命中迟早会出现更多类别的错误。
- 玩家的崩溃UX已更新,以删除冗长的仅英文错误消息,并在切换到WER(它告诉用户发生了以他们的母语发生的事情)之前显示通用内容。
- Windows:在安装VS2017时,Unity Download Assistant现在还将包含C ++模块,以便IL2CPP可以开箱即用。(1003155)
- XR:Android构建了支持,现在可以使用目标API版本14或更高版本构建ARCore。
- XR:通过消除不必要的OpenGL状态重置来改进ARCore中的后台呈现性能。
- XR:Metal:实现了
Graphics.DrawProcedural
先前遗漏的单通立体渲染的其余绘制调用功能(例如)。 - XR:将Vuforia更新至7.1.27版。
API变更
- 2D:添加
DetectChunkCullingBounds
到TilemapRenderer
允许正确剔除大型瓷砖。(971087) - 2D:实验API
TextureGenerator.GenerateTexture
现在需要一个NativeArrray来存储图像缓冲区,而不是设置一个IntPtr
inTextureGenerationSettings
。 - AI:将Navmesh查询的实验API中的结构名称更改
PolygonID
为PolygonId
。 - AI:用于NavMesh查询的新实验性API,可在C#作业中使用:
namespace UnityEngine.Experimental.AI
;struct PolygonID
;struct NavMeshLocation
;enum PathQueryStatus
;enum NavMeshPolyTypes
;struct NavMeshWorld
; struct NavMeshQuery使用这些方法:BeginFindPath()
,UpdateFindPath()
,EndFindPath()
,GetPathResult()
,IsValid()
,GetAgentTypeIdForPolygon()
,MapLocation()
,GetPortalPoints()
,MoveLocations()
,MoveLocation()
,PolygonLocalToWorldMatrix()
,PolygonWorldToLocalMatrix()
,GetPolygonType()
,Dispose()
。 - 动画:添加
AnimationClipPlayable.GetApplyPlayableIK
和AnimationClipPlayable.SetApplyPlayableIK
。 - 动画:移动
AnimationUtility.SetGenerateMotionCurves
并AnimationUtility.GetGenerateMotionCurves
从内部移动到公共。 - 动画:
AnimatorTransitionBase
和Motion
现在是抽象的。 - 动画:
AvatarBuilder.BuildHumanAvatar
不再支持.NET脚本后端。 - 资产导入:增加
OnPreprocessAsset
回拨AssetPostprocessor
。(另请参阅功能) - Asset Pipeline:资产管道:先前声明的API手册
AssetDatabase.GetSubFolders()
采用绝对路径,这是不正确的。现在它已更新为相对路径,与其他AssetDatabase方法一致。 - 构建流水线:新增
EditorBuildSettings
API方法:AddConfigObject
,TryGetConfigObject
,GetConfigObjectNames
,RemoveConfigObejct
。 - 构建管道:在构建过程中添加
IPreprocessBuildWithReport
,IPostprocessBuildWithReport
和IProcessSceneWithReport
接口以提供BuildReport对象。 - 构建流水线:重命名
BuildSummary.errors
和BuildSummary.warnings
以BuildSummary.totalErrors
和BuildSummary.totalWarnings
分别。 - Build Pipeline:恢复
IPreprocessBuild
,IPostprocessBuild
并IProcessScene
连接到他们的2017.3签名。 - 构建流水线:本
IPreprocessBuild
,IPostprocessBuild
和IProcessScene
接口已更改为传递BuildReport
对象,而不是只是路径的构建和目标平台。 - 构建管道:
BuildReport
API已移至UnityEditor.Build.Reporting
名称空间。 - 编辑:添加
Application.wantsToQuit
和Application.quitting
事件。 - 编辑:添加
EditorApplication.hierarchyChanged
活动并澄清API文档。 - 编辑:添加
EditorApplication.projectChanged
活动并澄清API文档。 - 编辑器:添加
UnityEngine.TestTools.Utils
到Playmode测试框架。该名称空间包含实用程序类,用于比较'Vector2','Vector3','Vector4'Quaternion
,颜色和float
使用NUnit
约束的类型。(在改进中也提到) - 编辑:显式设置以下代表为null,将不再绘制控制手柄,而是采用了默认的实现绘图:
PrimitiveBoundsHandle.midpointHandleDrawFunction
,ArcHandle.angleHandleDrawFunction
,ArcHandle.radiusHandleDrawFunction
,JointAngularLimitHandle.angleHandleDrawFunction
。 - 编辑:显式设置以下代表为null现在将导致0手柄的大小,而不是使用默认值:
PrimitiveBoundsHandle.midpointHandleSizeFunction
,ArcHandle.angleHandleSizeFunction
,ArcHandle.radiusHandleSizeFunction
,JointAngularLimitHandle.angleHandleSizeFunction
。 - 编辑器:
ColorPickerHDRConfig
现在已经过时,不再使用。 - 编辑:
EditorApplication.hierarchyWindowChanged
现在已经过时了,取而代之EditorApplication.hierarchyChanged
。 - 编辑:
EditorApplication.projectWindowChanged
现在已经过时了,取而代之EditorApplication.projectChanged
。 - 责任编辑:
EditorGUI.ColorField()
和EditorGUILayout.ColorField()
签名服用ColorPickerHDRConfig
现已过时。 - 编辑:
UnityEditor.AndroidTargetDevice
现在已经过时了,取而代之UnityEditor.AndroidArchitecture
。UnityEditor.PlayerSettings.targetDevice
现在已经过时,取而代之UnityEditor.PlayerSettings.targetArchitectures
。 - GI:实验性Lightmapping脚本API现在使用
NativeArray
而不是列表。 - 图形:添加了一个新的API来提取着色器信息(ShaderData)。
- 图形:暴露
RenderPipelineAsset.OnValidate
和OnDisable
方法。 - 图形:
Graphics.ConvertTexture
现在支持RenderTexture
作为源。 - 图形:
Texture
现在是抽象的。 - 输入:
TouchScreenKeybord.done
和TouchScreenKeyboard.wasCanceled
现在已经过时,通过所取代UseTocuhScreenKeyboard.status
。 - 多人游戏:添加
GetHostPort
功能,报告分配给主机的端口号。 - 多人游戏:弃用未使用的功能
NetworkTransport.GetAssetId()
。(950325) - 可玩的游戏:在
UnityEditor.Playables.Utility
创建或销毁PlayableGraph时检索所有的PlayableGraph和事件的新功能。 - 可播放:新的LeadTime功能可让您“预先预热”可播放节点中的数据。
- 可玩的:可玩的图示现在可以有名字。
- 可播放:
Playable.ConnectInput
现在可以选择为连接的输入权重。 - 播放器:添加了一个实验API,允许您更改引擎系统被调用的顺序,从更新顺序中删除引擎系统,或者在更新周期的任何时候插入新的C#入口点:
UnityEngine.Experimental.LowLevel.PlayerLoop
。(在特性中也提到) - 玩家:添加
Application.wantsToQuit
和Application.quitting
事件。 - 玩家:弃用的
Application.CancelQuit
方法。 - 脚本:为其添加构造函数
TextAsset
,可以为其文本内容指定一个字符串。 - 脚本:添加
ShaderUtil.GetAllShaderInfo
列出所有可用的着色器。 - 脚本:新增
Vector2.Perpendicular
来计算2D空间中的垂直向量。 - 脚本:扩展
Vector2
以支持两个Vector2
值之间的组件式乘法和除法。 - 脚本地:未实现参数构造函数用于以下类专用:
AudioManager
,EditorSettings
,GraphicsSettings
,InputManager
,LightmapSettings
,MonoManager
,Physics2DSettings
,PhysicsManager
,PlayerSettings
,QualitySettings
,RenderSettings
,Shader
,Sprite
,TagManager
,TimeManager
,AssetBundle
,AssetBundleManifest
,AudioClip
,ComputeShader
,LightingDataAsset
,LightProbes
,MovieTexture
,ProceduralTexture
,SceneAsset
,SubstanceArchive
,VideoClip
,RuntimeAnimatorController
。 - 用户界面:添加
characterLimit
属性TouchScreenKeyboard
。 - XR:增加PlayerSettings
Get
/SetVirtualRealitySupported
,Get
/SetVirtualRealitySDKs
,并GetAvailableVirtualRealitySDKs
获取和设置XR设置虚拟现实支持的切换和虚拟现实SDK列表。 - XR:已添加
XR.WSA.HolographicSettings.IsContentProtectionEnabled
。 - XR:已添加
XR.WSA.HolographicSettings.ReprojectionMode
。
修复
- 2D:在Sprite编辑器窗口的轮廓编辑器中启用捕捉功能的固定情况,即使设置为其他情况。(951918)
- 2D:固定问题,即改变
Sprite
在SpriteRenderer
将导致统一重建Collider2D
时,Collider2D
中国汽车瓦片被禁用。(971931) - 2D:修正了在纹理导入后第一次打开“编辑物理形状”标签之前,Unity不会设置Sprite 2D物理形状的问题。(985912)
- 2D:网格组件现在在CellSize / CellGap中的值发生更改时呈现。(976408,998558)
- 2D:SpriteEditorWindow中的新SpriteRect不再包含最后插入的SpriteRect的数据。(1001198,1010061)
- 2D:在平铺绘图模式下,SpriteRenderer不再有内存泄漏。(1006814,1010060)
- Android:启动没有启动画面的Unity应用程序时,亚马逊Kindle Fire不再会出现屏幕失真。(900732)
- Android:在启动画面中暂停并恢复Unity应用后,黑色纹理不再出现。(952769)
- Android:滚动视图中的按钮现在应该可以正确检测输入。(885600)
- Android:修复了在片段着色器中不具有高支持的OpenGLES2 GPU上较差的Light Cookie质量。(908253)
- Android:修正某些Adreno设备上出现的Vertex-Lit Point和Spot light问题。(949576)
- Android:为Android sdk / Java / NDK选择任何路径不再导致空引用异常。(1010249)
- Android:在某些三星和索尼Xperia设备上选择输入字段不会再导致崩溃。(953849)
- Android:当片段着色器不支持highp(高精度)时,OpenGLES2 GPU上的阴影质量不再降低。(919669)
- Android:旧款三星设备现在可以选择小数点键盘上的小数点按钮。(973815)
- Android:Unity应用程序不再禁用Sony Xperia设备上的内置照相机按钮。(944797)
- 动画:退出动画窗口预览时,布尔属性现在可以正确恢复到其初始值。(947491)
- 动画:调用
AnimationUtility.SetAnimationEvents
不再导致NullReferenceException
。(989647) - 动画:修复动画组件中不相关的断言。(943954)
- 动画:修复了在检查器中切换转场时转场预览未更新的问题。(938053)
- 动画:修复了Unity会重置保存场景的动画模式的问题。(949523)
- 动画:修正了Unity有时不会更新动画师设置为“彻底完成”的问题。(947990)
- 动画:修复时间轴序列不会触发动画事件的情况。(947918)
- 动画:修复使用代码剥离时动画系统崩溃的问题。(938640)
- 动画:修正了在淘汰剔除时并不是所有绑定到动画师的可玩片都进行了评估的问题。(883583)
- 动画:当改变覆盖控制器时,参数现在重置为默认值。(958173)
- 苹果电视:修复只允许设置顶层货架图像的一层。(760436)
- 资产导入:点击其他窗口,而阿凡达Inspector不再导致随机错误。(994383,1011622)
- 资产导入:当预旋转,后旋转和旋转偏移值为0并使用欧拉值时,修复了MotionBuilder中Light和Camera动画的90度偏移。(954475)
- 资产导入:修复了ModelImporter Rig面板中更新头像按钮不会消失的问题。(837263,990716)
- 资产导入:修正导入具有自定义帧率的FBX会导致
AnimationClip
帧率错误的错误。(916405) - 资产导入:修复ScriptedImporters上对象字段的处理,以便可以在检查器中为其分配值。
- 资产导入:修复了压缩网格紫外线在数值处于很短范围内时会产生巨大的序列化数据的问题。(960280)
- 资产导入:修复了首次从3DSMax 2018导入的FBX模型具有头像的问题,即使它们不包含动画。(923384)
- 资产导入:修复了“资产”选择器类型在“材料”重新映射导入设置中存在错误(如果“材料”已分配)的问题。(971556)
- 资产导入:修复了从MotionBuilder创建的FBX文件导入字符串类型的自定义属性。(956420)
- 资产导入:当导入的材料名称已更改时,修正模型导入器检查器上“提取材质”按钮的状态。(958044)
- 资产导入:
AssetImporter.GetAtPath
资产由ScriptedImporter导入时修复。 - 音频:修正了在使用IL2CPP的控制台上使用音频回调时避免GC分配(尽管请注意单声道后端仍然分配)。(1004804)
- 音频:修复了Windows编辑器和独立版本中的错误,Unity不会对系统音频设备列表中的更改做出反应(例如更改默认音频输出设备等)。(935547)
- 音频:修正了一个极低频率生成音频片段(<1000 Hz)会导致Unity崩溃的问题。(873683)
- 音频:修复了一个错误,其中具有最高优先级的音频源可以先于其他音频源虚拟化。(928587)
- 音频:修复了分配给AudioSource.clip会额外停止AudioSource当前正在播放的单曲,同时引发性能尖峰的错误。现在它只停止主剪辑。(875968)
- 音频:修正了编辑器在生成流式音频剪辑(AudioClip.Create())时重新编译脚本时崩溃的问题。(884965)
- 音频:修复了使用Razer Kraken 7.1耳机作为音频输入设备(使用
Microphone.Start()
)会导致错误的错误。(946835,950409) - 音频:使用空参数调用AudioSource.SetCustomCurve()时修复了崩溃。(931396)
- 音频:修复了在OnEnable()内创建音频剪辑(AudioClip.Create())时的崩溃。
- 音频:修复了使用附加的自定义滤镜(OnAudioFilterRead)销毁GameObjects时可能发生的故障。
- 音频:修复了坏音频驱动程序可能发生的故障,设备初始化现在更强大 - 还添加了一条诊断消息,以防无法打开具有预期设置的音频设备。(916971)
- 音频:修复了未来时间戳音频片段导入失败的问题。(951169)
- 音频:[RequireComponent(AudioBehaviour)]现在可以正常使用AudioSources和AudioListeners。(888121)
- 构建管道:构建AssetBundles时不时发生偶然的崩溃。(1009641)
- 构建管道:仅脚本构建现在需要该播放器的目标目录与最后一个缓存构建相匹配。没有这个要求,一些平台如Xbox One和PS4就会以不明确的方式失败。(932403)
- 构建管道:Linux播放器和控制台的图标设置不再被破坏。(1018605)
- 缓存服务器:在协议版本检查中添加足够的数据检查(943300)
- 缓存服务器:修复了可能导致与缓存服务器通信失败的错误
- 缓存服务器:修复缓存问题,其中URL参数中的斜杠'/'导致缓存密钥被破坏(896779)
- DX12:使用Android图形目标API打开场景,编辑器使用DX12 API不会再导致崩溃。(969590)
- 编辑器:“编辑器首选项”中的“OS X拾色器”现在被命名为“macOS颜色选择器”。(991730)
- 编辑器:进入播放模式后,菜单项检查状态不再丢失。(923501)
- 编辑器:添加了白名单路径列表,这是在项目中克隆模板时唯一被复制/替换的路径。(996769)
- 编辑器:具有固定大小的辅助编辑器窗口不再包含macOS上的最大化按钮。(1006807)
- 编辑器:当编辑器重新获得焦点时,画布文本不再消失。(807380,988399)
- 编辑器:现在,Collab更新以正确的顺序重新加载场景,以保留新脚本变量的值。(996118)
- 编辑器:恢复到旧版本时,协作不再删除忽略的文件。(932926,985130)
- 编辑:光标锁定不再在Mac和Windows的意外时刻进行。(959859)
- 编辑器:删除嵌套在自己孩子中的预制件的孩子不会再导致故障。(956141)
- 编辑器:确保协作以正确的顺序重新加载数据,以避免更新后丢失新脚本变量的值。(996118)
- 编辑器:在批处理模式下执行PlayMode测试不会在执行后留下引导场景。
- 编辑器:修复了导入skp文件时崩溃的问题。(1004401)
- 编辑器:修正进入播放模式时ALOC_TEMP_THREAD错误。(939779)
- 编辑器:修复使用个人皮肤时首选项的键选项卡中的背景。(931908)
- 编辑器:修正在颜色选择器中点击“色板”标签不会扩展预设控件的错误。(976080)
- 编辑器:修正了在显示之前检查器中的HDR色样未被转换为伽玛色彩空间的错误。
- 编辑:修正了按Esc不会取消颜色取样吸管模式的错误。
- 编辑器:修正了当颜色区域被标记为HDR时,使用吸管采样颜色不会将采样颜色转换回线性空间的问题。
- 编辑器:修正了当使用多个不同序列化数据流显示时,UnityEvent抽屉无法正确同步的问题,例如一次显示在两个不同的窗口中。(974069)
- 编辑:在某些情况下修正了“系统已经对这种变换感兴趣”的错误。(962008)
- 编辑器:修正了在将最后一项资产移出文件夹时高亮显示资产的情况。(961630)
- 编辑器:修正了在Linux编辑器中颜色选择器吸管预览渲染颠倒的情况。
- 编辑器:修正了颜色选择器窗口在强度下降时颜色丢失并在窗口仍然打开时再次增加的情况。(712903)
- 编辑器:修复了多个检查员在最大化和恢复视图时迷路的情况。(775007)
- 编辑器:修复了“播放器设置”中的iOS版本字符串中存在无效字符时无尽异常的情况。(986098)
- 编辑器:修正使用变形工具或通用工具+(控制/命令)键时,对象跳过其初始位置的情况。(964593)
- 编辑器:修正场景视图选取的情况,有时在加载以前序列化的窗口布局时,不会选择最顶层的对象。(943051)
- 编辑:修正
EditorConnection
玩家断线时删除注册回调的情况。 - 编辑器:修复了当使用
ImageEffectAllowedInSceneView
和设置相机targetTexture
为空时来自“RenderSelectionOutline”的崩溃。(966404) - 编辑器:固定编辑器崩溃,同时关闭2个自定义编辑器窗口。(967778)
- 编辑器:固定编辑器在合并文件时挂起。(971434)
- 编辑器:修正了在带有子项的游戏对象上使用“静态”复选框时的错误。(962453,964436)
- 编辑器:在首选项中选择Android NDK时修复异常,并在NDK路径无效时单击取消。(909635)
- 编辑器:修复了GUI状态范围界定问题。(967017)
- 编辑器:修复了当进度条提供非常长的字符串时,Linux编辑器中的硬件崩溃。
- 编辑器:修正了透视模式设置为中心时不正确的工具放置。(962721)
- 编辑器:修正了RequireComponent会导致预制件上的组件被重复播放的问题。如果用户添加了一个新的组件(同一类型)并删除了原始组件,就会发生这种情况。(778588)
- 编辑器:修正了uXML资产预览被错误裁剪的问题。(960313)
- 编辑器:固定按下ctrl / cmnd按钮时的移动资源(938735)
- 编辑器:修正了将焦点从材质对象切换开时调用的OnSceneUnload(946988)
- 编辑器:修复了对新创建的对象的ping(766150)
- 编辑器:修复插件设置“排除平台”没有效果。(873575)
- 编辑器:修正了项目视图用长号错误排序文件名(681738)
- 编辑器:修正编辑器启动期间的随机挂起。(954607)
- 编辑器:修复了在选择或解除项目时向下滚动到一列布局中最后选定的项目(800606)
- 编辑器:修复了重新加载域后重置搜索的“添加组件”窗口(946012)
- 编辑器:固定顶部右侧场景视图Gizmo,可以在设置时正确更新投影类型标签
SceneView.lastActiveSceneView.orthographic
(878205) - 编辑器:生成的Visual Studio解决方案现在将引用模块程序集,修复在VS项目中使用PS4和WebGL API。(967854)
- 编辑器:AddComponent下拉列表中的项目现在按名称排序。
- 编辑器:关闭/重新加载后,AudioMixer窗口的布局方向现在仍然存在。(776811)
- 编辑器:使ObjectSelector的文本字段对Home和End按钮做出反应(762158)
- 编辑器:搜索时可以显示子资源结构纹理(788431)
- 编辑器:Mip级滑块现在可用于金属(900891)
- 编辑器:现在批处理和层设置在从playmode退出后正确恢复(965811)
- 编辑器:从控制台窗口中删除UnityConnect错误输出。(963815)
- 编辑器:
scripting_stack_trace_info_for
打开加载程序集失败的项目时崩溃不再存在。(1005030,1005520) - 编辑器:游戏视图不再具有阻止其在某些布局中更新的错误。(988147)
- 编辑器:如果将Asset / ChangeSet传递给VersionControl Provider方法,则抛出ArgumentNullException而不是崩溃。(922714)
- 编辑器:[Collab]修复了发布失败时出现复制文件错误时更新快照的问题。(952686)
- 编辑器:[OSX]
GUILayoutUtility.BeginLayoutGroup
在对话窗口中按下“取消”按钮后,异常不再被抛出。(971204) - 编辑器:
InspectorWindow.OnSelectionChange()
在某些操作中回调不再导致空引用异常。(851988,970700) - 编辑器:
Profiling.Recorder
现在选取Profiler中可见的所有动态标记。(881136,1006484) - GI:由于缺少数据,将场景可视化模式切换为间接或发射时,不再报告错误代码。(997954)
- GI:在Mesh Renderer组件上指定Light Probe Group以锚定覆盖参数不会再导致错误,或在一段时间后崩溃编辑器。(1002580)
- GI:建立独立不再抛出...程序'frag_surf':无法识别的采样器'samplerunity_lightmap'..与特定着色器错误。Shadowmasks现在使用他们自己的采样器。(955176)
- GI:当遮挡物使用透明纹理时,现在可以呈现双面GI。(981329)
- GI:启用实时GI退出播放模式不会再导致内存泄漏。(991939,1007945)
- GI:修复问题,即没有可用的工作岗位,但工作正在发布。
- GI:修复了由错误触发的照明数据资产写入导致的断言。(985915,1010124)
- GI:
kValidSceneObjectIdentifier == res
在选择预制件后固定触发的情况下,其预览窗口可见。(955674) - GI:固定情况下的默认镜面反射纹理,其中包含Umbra启用时场景中的对象。(975325)
- GI:反射探测器的固定情况始终包括地形对象,即使它们不是反射探测器静态。(863968)
- GI:单击“生成照明”按钮后,场景变为完全黑色的情况。(973666,988957)
- GI:尝试访问地形的“烘焙光照贴图”参数时修复崩溃。(952939)
- GI:修正了独立时天空盒在切换活动场景后会消失的问题,而在编辑器中天空盒将保持不变。(828440)
- GI:解决了CPU使用率为0.0%时每帧中IsLightmapBakeTypeSupported()GCAlloc的17B(986319)
- GI:Lightmaps现在在第一次烘焙后正确烘焙。(1006916)
- GI:渐进式光照贴图:修正正确组合光罩。(953780)
- GI:在Progressive Lightmapper中接收阴影和投射阴影选项现在可以按预期工作。(953108)
- GI:EnlightenRuntimeManager不再有小的内存泄漏,导致无法释放纹理包装对象。(991939,1007945)
- GI:与Enlighten的输出相比,Progressive Lightmapper的聚光灯输出不再太亮。(953775)
- GI:Progressive Lightmapper现在可以正确处理模型中的所有四面体。(908068)
- 图形:在打包到光照贴图边界的对象上启用缝合时,罕见的崩溃不再发生。(1000350)
- 图形:当您启用图形作业不再发生时,CreateGpuProgram中的罕见死锁。(934897)
- 图形:添加GetColor API到MaterialPropertyBlock。(942523)
- 图形:在PointLight上添加了对Cube RenderTexture作为cookie的支持。(999718)
- 图形:不支持RGBA16F渲染到纹理的设备上的黑屏不再发生。(989654)
- 图形:GI系统中的拳击不再导致小的每帧分配。(986319)
- 图形:修复脚本创建剔除组时崩溃,但无法调用SetBoundingSphere。
- 图形:修复更新常量缓冲区时图形命令缓冲区中的死锁。(986772,995312)
- 图形:修复某些平台上与深度纹理关联的纹理ID泄漏。
- 图形:修复以避免尝试渲染具有巨大顶点数的LineRenderer。(977228)
- 图形:修正了梯度环境的实时采样不正确的情况。以前的行为可以通过设置
UnityEditor.Experimental.RenderSettings.useRadianceAmbientProbe
为true 来重新启用。(673298) - 图形:固定大小写的对象,使用
HideAndDontSave
在分离和重新启用后在预览窗口中可见。(963576,994424) - 图形:如果背景颜色alpha不是1,则固定闪屏闪烁的情况。(901782)
- 图形:修复了SkinnedMeshRenderer附带Animator和Cloth时SkinnedMeshRenderer :: PrepareSkinCommon的崩溃。(941369)
- 图形:修复了Mesh.ClearBlendShapes(972060)
- 图形:修正了在使用阴影投射Lines / Particles / Trails和SRP时崩溃的问题。(985077)
- 图形:修复Flare构造函数返回空对象。
- 图形:修复了TrailRenderer没有在其产卵地点丢弃点的问题。(978250)
- 图形:固定材质ctor与null着色器/材质崩溃(现在它会正确抛出受管理的nullref异常)(971263)
- 图形:修正了在动态几何图形上使用选取框选择(例如粒子,线条和轨迹)时发现的偶然碰撞。(1021655)
- 图形:修正了编辑器中由于颜色和深度MSAA样本不匹配导致的OpenGL错误。
- 图形:修复了Vulkan多显示器支持。
- 图形:金属:调度计算着色器时修复偶然GPU挂起/崩溃(950983)
- 图形:MeshRenderer组件中的照明组和材质组功能之间的UI不再不一致。(969494)
- 图形:渲染器在零扩展的情况下,AABB位置不再重置为零(856906)
- 图形:我们不再创建OSX GLCore计算着色器变体,当它们不受支持时。(989250)
- IL2CPP:更正了
DateTime.TryParse
.NET 4.6配置文件的行为。(948887) - IL2CPP:修复允许link.xml文件在文件开头包含注释。(956493)
- IL2CPP:修复以防止PS4上的GC发生间歇性故障。(955991)
- IL2CPP:修正了
Socket.LocalEndPoint
在.NET 4.6上访问时的ArgumentException 。(943671) - IL2CPP:修复了
Socket.GetSocketOption
使用最新的脚本运行时调用时的崩溃。(952403) - IL2CPP:修正类中未实现的COM相关内部调用
System.Runtime.InteropServices.Marshal
,例如QueryInterface
。(930386) - iOS:iPhone X上横向模式下的“完成”和“取消”按钮不再缺失。(966702)
- iOS:添加了配置文件类型属性。它会自动设置为可在本地使用的配置文件,或者在不可用时通过下拉菜单进行设置。(1018835)
- iOS:将默认的iOS启动屏幕颜色更改为与Unity默认启动屏幕相同的(黑色)颜色。
- iOS:更改
Screen.autorotateToXXX
现在应该正常工作。(974181) - iOS:Xcode API编写的plist文件不再缺少DTD声明。
- iOS:固定
Screen.dpi
iPhone 8/8 + / x的返回值。(960914) - iOS:如果应用程序在启动期间最小化,FMOD不会再失败。如果发生这种情况,FMOD现在会重新初始化。(915971)
- iOS:iOS8:当您从脚本更改屏幕方向时,现在使用正确的屏幕大小。(997885,1004720)
- iOS:在输入字段之间切换时,键盘现在可以正确打开。(789270)
- iOS:Metal:
RenderTexture.DiscardContents
现在应该可以在Metal上正常工作。(930907) - iOS:屏幕自转时屏幕不再闪烁。(956026)
- iOS:通过脚本更改方向时屏幕不再闪烁(953524)
- iOS:切换到手动签名时,团队签名ID不再隐藏。(960657)
- iOS:
UnityViewControllerBase+iOS.h
现在与Objective-C兼容。(793420,1018836) - 内核:更正了编辑器日志输出中的拼写错误。(966081)
- 内核:修正AMD cpu for windows和linux平台的精确问题(953111)
- 内核:修复脚本数学Quaternion.Angle函数,当四元数被运算符==相等时返回0(955655)
- 许可证:单击“确认”弹出窗口上的NO按钮,同时返回许可证View不再导致崩溃。(991220)
- 许可证:修正了时区更改时许可证时间验证逻辑中的问题。以前可能会报告时间验证错误。(960760)
- 许可证:在返回许可证时删除误导性的“这不应该在批处理模式下调用”消息。(877423)
- Linux:修复了Linux编辑器中的渐进式光照贴图崩溃。(913799,1013759)
- 多人游戏:修复场景后期处理过程中场景ID确定性问题。(935230)
- OSX:“你真的想退出吗?” 在macOS独立版本中关闭窗口时不再出现对话框。(984155)
- OSX:为macOS上的Unity启动器固定的CMD-Q和Quit菜单选项。(978777)
- OSX:在将Graphics API设置为OpenGLCore并将V.Sync计数设置为“每V空白”时,修复的FPS不再在编辑器中下降。(950318)
- OSX:当您最大限度地减少独立版本时,游戏不再继续运行,也不管用户是否在另一个应用程序中处于活动状态。(776557)
- OSX:在macOS的后台运行时,游戏不再接收鼠标输入。(758806)
- OSX:向下移动到Dock时,隐藏游标不再无法隐藏。(858220)
- OSX:USB鼠标输入不再禁用
Input.GetAxis
MacBook上的其他触摸板输入。(842835) - OSX:Mac原生分辨率现在设置正确。(792350)
- OSX:金属:在Nvidia GPU上使用OSX 10.11上的MSAA时,金属不再会挂起。(952826)
- OSX:调整Mac上的独立游戏窗口大小不会导致闪烁。(852470)
- OSX:当构建的场景为64位或通用时,现在可以在macOS上显示第二个屏幕。(959498)
- OSX:关闭按钮不再变灰,不可用于编辑器主窗口。(985142)
- OSX:在窗口模式下,您不能再以高于桌面分辨率播放内置场景。(962469)
- 软件包管理器:通过进度条取消软件包管理器操作不会导致崩溃。(1011686,1014739)
- 软件包管理器:在upm启动顺序中修复了未捕获的异常,这可能导致无法启动Unity。(1003077)
- 软件包管理器:修复了Windows中会阻止软件包元数据更新的权限问题。(1003070,1024322)
- 软件包管理器:当切换构建目标或图形API时,打包的资产现在会在适当的时候重新导入。(1018493,1019200)
- 包管理器:切换
Packages
文件夹名称UnityPackageManager
以防止与nuget冲突。(941516) - 粒子:修正了当变换比例不均匀时粒子界限不能被正确计算的问题。(977520)
- 粒子:解决了与速度和3D旋转对齐的问题,其中局部空间粒子可能不一致地对齐。(970786)
- 粒子:修正了使用粒子网格时与Pivot Offset和Bounding Boxes的不一致之处。(962121)
- 粒子:实现更准确的处理启动延迟和非固定更新。(971841)
- 粒子:接收阴影复选框现在总是在使用延迟渲染时勾选。(960622)
- 物理:更改具有布料组件的GameObjects上的蒙皮网格渲染器上的网格时更正的错误消息。(950424)
- 物理:禁用的布料现在继承其父变换。(946307)
- Physics:编辑器将布料组件添加到具有高顶点数的网格物体时,编辑器不再冻结。(956856)
- 物理:修复了由小网格造成的项目负载崩溃。(953083)
- 物理:修复崩溃
PhysicsManager::SetColliderTransform
,在重新加载磁盘上发生更改的场景后进入“播放”模式时会触发该事件。(958230,983579) - Physics:Physics Debugger的图层蒙版现在可以正确地过滤GameObjects。(948201)
- Physics:加载新场景并在协程中激活Cloth GameObject时防止崩溃。(951789)
- 物理:在
Rigidbody::GetVelocity()
打开特定场景时防止潜在的崩溃。(955697) - 物理:在停用时将布料指针设置为null,以防止SkinnedMeshrenderer尝试使用取消分配的布料对象。(946356)
- 物理:当执行导致Collider2D被重新创建的变换变化时,我们现在确保任何现有的待处理物理移动不会导致崩溃。(1017868)
- 脚本:增加了对IPv6的支持在Android上使用.NET 2.0配置文件(803576,804510)
- 脚本:使用.NET 2.0配置文件添加了对Android上的IPv6的支持。(803576,804510)
- 脚本编制:使用隐式运算符和Nullable时C#编译器错误不再发生。(970493)
- 脚本:调用
MethodInfo.GetParameters()
不再导致崩溃。(1006251) - 脚本:当打开包含IAP插件的iOS项目不再发生时,在mono_class_array_element_size时崩溃。(980669,998787)
- 脚本:当您将附加到GameObject的MonoBehaviour派生脚本修改为源自ScriptableObject的脚本时,不再将错误记录到控制台。(946510,947929)
- 脚本编制:解决编辑器中的脚本问题,在编辑时使用ENABLE_IL2CPP而不是ENABLE_MONO在某些情况下
- 脚本:修改MenuItem名称时不会删除的菜单项,它包含连续的正斜杠(916305)
- 脚本:使用时修复死锁和暂停
System.Threading.Monitor
。(827984) - 脚本
SerializedProperty.prefabOverride
编制:修复了在某些情况下重置某个属性可能会错误地重置其他属性的问题。(960775) - 脚本:修复了调用
Activator.CreateInstance()
数组类型时可能发生的崩溃。(964848) - 脚本:被禁用或销毁的GameObjects不再启动协程。(863131)
- 脚本编制:对具有负值的数组进行索引不会再
IndexOutOfRange
在x64上产生异常。(967679) - 脚本:MonoDevelop:使用多个监视器修复macOS 10.13上的启动 - 崩溃(955089)
- 脚本:如果事件处理程序不使用参数,则在调用UnityEvents时阻止垃圾回收分配。(967201)
- 脚本:防止StopCoroutine不能处理嵌套的IEnumerator协程。(935955)
- 脚本编写:写入的文本
System.Environment.Out
不再逐字符地刷新到磁盘。 - 脚本编制:编译某些C#脚本时,Mono C#编译器不再挂起。(948492)
- 脚本:
HashSet.TrimExcess
不再导致增加内存使用量。(969832) - 脚本升级:等待产生更多延续的延续不再导致挂起。(1004428)
- 脚本升级:调用
NativeArray.Equals
不再导致崩溃。(1005597) - 脚本升级:修复构建某些导致记录“递归错误”消息的玩家时,ScriptUpdater未运行(952674)
- 脚本升级:修复了当脚本包含对NetworkConnection.TransportRecieve()的调用时更新程序崩溃()(951261)
- 脚本升级:修复了在用户代码由
#if NET_CORE
使用过时的API 保护时构建.NET播放器时无法解析系统类型的问题。(946498) - 脚本升级:
pinvoke
Android上的固定结构对齐。(915869) - 脚本升级:编辑器中的文本字段现在可以接受具有无可比拟的替代字符的字符串。(939578)
- 脚本升级:Type.GetInterface现在在.NET 4.6上找到指定的接口(985462)
- 服务:在Cloud Build中构建并启用Performance Reporting不再导致异常。(996949)
- 服务:修正Collab更新期间本地资产被覆盖的情况。(952569,1008212)
- 服务:修复了启用了性能报告但服务不可用时编辑器无法构建项目的问题。(980543,1022106)
- 地形:
SplatMaterials::FindMaterialProperties
当打开具有特定材质和地形组合的场景时崩溃不再发生。(919769) - 时间轴:当您在控制轨道上使用Prefab的Prefab实例时,挂起不再发生。(989856)
- 时间表:现在音频波形在重新打开时刷新。(927126)
- 时间轴:绑定在第一个轨道上不再失败,内联曲线打开。(998182)
- 时间轴:对内嵌曲线的更改现在立即应用于自定义轨道上。(976036)
- 时间轴:复制的组不会再被保存在错误的时间轴下。(991434)
- 时间轴:更正了无法将多个剪辑拖动到另一个轨道。(908228)
- 时间轴:自定义曲目属性现在显示在Inspector中。(989269)
- 时间轴:拖动时间轴中的剪辑并在时间轴窗口外释放拖动不再冻结剪辑。(946823)
- 时间轴:在OSX上创建时间轴资产时,Finder窗口不再显示“无”。(998190)
- 时间轴:修复从项目视图拖到覆盖轨道时出现的动画片段偏移问题。(906895)
- 时间轴:修正了裁剪剪辑右侧时不显示箭头的问题,但会在展开剪辑时显示。(881902)
- 时间轴:在播放模式中选择剪辑不再抛出a
NullReferenceException
。(996000) - 时间轴:Shift +
,
/ Shift +'。' 当内联曲线被选中时,快捷键现在可以工作。(952552) - 时间轴:当您进入播放模式时,时间轴编辑器不再失去滚动位置。(876341)
- 时间轴:时间轴不再导致4.6脚本运行时下的GC分配。(998642)
- 时间轴:时间轴现在在创建时间轴资产后显示重命名字段。(995886)
- 时间轴:跨时间线复制的曲目和剪辑不再保留与原始链接的链接。(979587)
- 时间轴:复制到新时间轴时,轨道不再有重复的名称。(923360)
- 时间轴:撤消根运动偏移操作器现在可以工作。(974289)
- 时间轴:撤消剪辑移动不会再引发
ArgumentOutOfRange
异常。(927807) - 用户界面:使用鼠标滚轮在滚动视图中滚动时修复悬停问题(959647)
- 用户界面:修复了在启用/添加Canvas时重新计算RectTransform的功能。(1008313)
- 用户界面:修复了在复制UI对象之后重新命名UI的问题。(950420)
- UI:修复了Buid&Run上的UI Mask导致的崩溃,当材质为null时。(935112)
- 用户界面:修复了
ClearProgressbar
在MacOS编辑器中调用时没有删除同步代码中的进度条的问题。 - 用户界面:修复了ScrollRect大小重新计算开始时的问题。(950200)
- UI:如果两个光线之间的距离非常小,则图形raycaster不再返回错误的对象。(974500)
- 用户界面:输入栏现在可以在iOS和Android上立即响应字符限制
- UI:在包含UI对象的Prefab实例上撤消或应用更改时防止崩溃。(930503)
- UI:默认的UI着色器不再忽略平铺和缩放。(722133)
- 用户界面:RectTransform现在切换到永久注册,如果禁用,可以侦听位置更改。(959492)
- UI:现在刷新文本元素中显示的值,以便预制覆盖正确应用。(975553)
- 用户界面:用户界面不再为移动的画布发送变换更新消息,因为这会导致物理系统行为失常。(889350)
- UI:在设置或清除
UNITY_UI_CLIP_RECT
渲染目的时,我们不再修改场景。(967024) - 通用Windows平台:某些尺寸的应用程序图标在导出的Visual Studio项目的清单中未出现之前现在可以执行。(949269)
- Universal Windows Platform(通用Windows平台):在未连接的情况下对电话设备执行“生成并运行”时,不再抛出错误消息。(923345)
- 通用Windows平台:删除了剪贴板内容发生更改时以前打印到日志中的错误消息,但该应用程序无权读取它。(916357)
- 视频:在暂停状态下修正错误帧增量的情况。(937167)
- 视频:修复了在Windows上使用H264视频的媒体基础块。(964280)
- 视频:[Mac]修复了某些h264视频剪辑在低规格硬件上播放时会在几秒后停止播放或滞后的问题。(930947)
- Web:[UnityWebRequest] HTTP上的下载处理程序中未被调用的CompleteContent不再存在。(954119)
- WebGL:对于在移动浏览器上启动的WebGL项目,Application.isMobilePlatform不再返回false。(911870)
- WebGL:加载过程中不再显示黑屏。(900105)
- WebGL:现在可以在Microsoft Edge中正确检测浏览器模型。(943241)
- WebGL:修正UnityLoader向后兼容性(使用2017.2+加载器时,5.6和2017.1版本将失败)。
- WebGL:拖动鼠标后鼠标不再陷入GetMouseButton(0)状态。(905712)
- WebGL:斜杠不再从blob url丢失。(940942)
- WebGL:即使内存大小不是16的倍数,WebAssembly构建也可以工作。(955246)
- WebGL:Webcam现在支持Firefox和Safari。(1005628)
- WebGL:WWW / UnityWebRequest.isHttpError现在在404错误(未找到文件)上正确设置。(988784)
- WebGL:
/b
不再被添加到keyup事件的inputString上。(981495) - WebGL:
AudioSource.pitch
现在是零,没有零分问题。(946393) - WebGL
SHADER_API_MOBILE
2.0不再在WebGL 2.0上定义。 - Windows:使用IL2CPP脚本编译后端现在可以在使用VS 2017 Update 6编译失败时打印出C ++编译错误。
- Windows:在鼠标光标被锁定时移动窗口不再导致窗口不在屏幕上。(932978)
- XR:Android VR地形树不再随相机旋转。(956544)
- XR:弃用警告/错误中使用的API现在已更新。(942738)
- XR:Cardboard iOS目标帧速率现在是正确的。(950229)
- XR:更正的Podfile版本号。(962253)
- XR:修正了定义选择按钮是否被按下的泛型和WSA命名空间代码路径之间的不一致。(954940)
- XR:处理Android密度(屏幕分辨率)更改而不会崩溃。(950540)
- XR:当您尝试在暂停时退出播放模式且VR未启用时,全息模拟器不会再发生崩溃。(948127)
- XR:WindowsMR上的(
Failed to get spatial interaction controller...
)和WinRT错误(SpatialinteractionSourceLocation.SourcePointerPose failed ...
)不再发生。在正常预期条件下发生之前。 - XR:
TEMP_ALLOC
使用XR相关软件包时,控制台中不再有错误和警告消息。 - XR:使用VR模拟测试设备时,履带式姿态驱动器不会再导致崩溃。(966990)
- XR:当用户尝试重新加载已加载的VR设备时,Unity现在会发出警告消息。(996223)
- XR:
GrabPass
不再使用单通道渲染方法只抓住一只眼睛。(953360) - XR:
ScreenCapture.CaptureScreenshot()
当启用立体声实例时,不再正确截取屏幕截图。(970906)
已知的问题
- 编辑器:编辑器从编辑器外部更改播放器设置时,Skin会变成灰色 - 例如,第一次从Collab获取项目或手动修改项目时。重新启动编辑器会清除问题。(994405)
- GI:在处理通过级别几何工具(例如Terrain / ProBuilder)生成的实例时,Progressive Lightmapper会重新启动烘焙,以便用户进行每次更改。这样做会破坏级别创作工作流程。这可以在新创建的3D项目中看到,因为Progressive Lightmapper默认为新的3D项目。将在2018.1.0发布后解决。(1028364)
- 图形:渲染Pipeline HD - 安装包后会发生错误。将在补丁版本中解决。(1004692)
- OSX:[OSX 10.13][2018.1]在使用Metal进行渲染时,多次在2个游戏视图选项卡之间快速切换可能导致编辑器冻结或崩溃。注意:在最新的10.13.4 Beta(17E160e)上重现要困难得多。(991828)
- 粒子:在“项目”窗口中选择GameObject时,“线渲染器”将渲染到“场景和游戏”窗口中。将在2018.1发布后解决。(972298)
- 脚本编辑:通过MenuItem打开外部文件夹时编辑器崩溃(1018162)
- XR:VRModule可能在使用启用了“Strip Engine Code”的IL2CPP时被剥离,导致构建不进入VR模式。有关如何解决此问题的详细信息,请参阅https://forum.unity.com/threads/2018-1-il2cpp-vrmodule-stripping-issue.528799/。将在2018.1发布后解决。