如何提高Unity Gear VR游戏性能2

Unity-- Gfx.WaitForPresentOnGfxThread占用CPU过高导致帧率低 一个新建的URP项目,里面只有几个测试模型,结果在3070的笔记本电脑上,只能运行到20帧!Gfx.WaitForPresentOnGfxThread 这个东西,是CPU已经准备好绘制下一帧,但是GPU还没准备好,应用程序等待 GPU 所花费的时间。那就说明,卡在GPU的性能上了。(6) 笔记本电脑的系统设置。有些笔记本电脑,是有系统设置的,可以直接影响GPU的渲染能力。切换为【性能】设置,释放GPU能力。关闭了所有URP耗性能相关的设置,情况未有好转。死磕了一下午,终于找到原因,解决了。 阅读详情

上一篇中我们讨论了GearVR设备的特点还有创建高效的GearVR游戏的方法。这一篇,我将聚焦于调试在这些设备上性能不够好的Unity程序的方法。

性能调试

即使你的游戏场景经过良好的设计,并且设置了合理的节流值,你也会发现你的游戏在GearVR设备上不会一直以固定的60FPS运行。下一步就来看看这三个工具怎么使用:Unity’s internal profiler log, Unity’s Profiler , 以及Oculus Remote Monitor.

在调试Unity性能时,第一个要做的就是在Player Settings打开Enable Internal Profiler选项。开启之后,每几秒钟都会输出许多重要的帧率统计信息到logcat控制台上。这会让你清楚的知道你的每帧时间都干嘛去了。

为了说明调试性能一般步骤,我们来看一下从一个相当复杂场景中得到的采样数据,该游戏运行在Note 4 GearVR设备上。

Android Unity internal profiler stats:
cpu-player>    min:  8.8   max: 44.3   avg: 16.3
cpu-ogles-drv> min:  5.1   max:  6.0   avg:  5.6
cpu-present>   min:  0.0   max:  0.3   avg:  0.1
frametime>     min: 14.6   max: 49.8   avg: 22.0
draw-call #>   min: 171    max: 177    avg: 174     | batched:    12
tris #>        min: 153294  max: 153386  avg: 153326   | batched:  2362
verts #>       min: 203346  max: 203530  avg: 203411   | batched:  3096
player-detail> physx:  0.1 animation:  0.1 culling  0.0 skinning:  0.0 
               batching:  0.4 render: 11.6 fixed-update-count: 1 .. 1
mono-scripts>  update:  0.9   fixedUpdate:  0.0 coroutines:  0.0 
mono-memory>   used heap: 3043328 allocated heap: 3796992  
               max number of collections: 0 collection total duration:  0.0

由于GearVR设备被卡在头盔中,为了获得这个数据,你需要使用ADB over TCPIP工具,通过WIFI连接手机,然后运行adb logcat命令。(更多信息,请查看Mobile SDk文档中“Android Debugging部分”)

上面的数据告诉我们,平均每帧耗时是22ms,大约是45FPS,比我们60FPS的目标还差得远。还可以看出,这个场景对CPU来说负担很重——22ms中有16.3ms花费在CPU上。我们花费了5ms在驱动上(“cpu-ogles-drv”),这意味着我们以较慢的方式在使用驱动。潜在的问题就很清楚了:每一帧有174Draw Calls,严重超标(我们的目标是100)。除此之外,我们使用了比预期更多的多边形。这个视图并没有告诉我们GPU上发生了什么,但是他告诉我们,只看CPU的话45FPS需要提高,并且应该专注于降低draw call。

这个数据还显示,在帧耗时上有规则的峰值(最长帧耗时为49.8ms)。为了理解这些峰值是哪来的,下一步要连接到Unity Profile,看下它的输出。


Screen-Shot-2015-04-28-at-12.57.31-PM.png

不出所料,上面的图显示了规则的峰值。在非峰值期间,我们的渲染时间和上面报告的数值相近,并且对最终的帧耗时影响不大。


Screen-Shot-2015-04-28-at-12.57.54-PM.png

Profiler中显示,峰值的时候,Gfx.WaitForPresent这个函数耗时最多。奇怪的是,我们实际的渲染时间再峰值的那一帧并没有显著增加。究竟是发生了什么?

Wait for present

看起来是因为WaitForPresent(及其兄弟版本,Overhead)重复出现,从而破坏了我们的帧率。实际上,它并不执行什么神秘的工作。相反,WaitForPresent记录了渲染管线停止的时间数量。

要理解渲染管线,一个好的方法是想象一个火车站。火车以固定的时间离开——每16.6毫秒。我们说火车在一个时刻只有一辆,现在有很多人排队准备上车。只要队伍中的每个人在火车离开之前都能上得去,那么每16毫秒都可以出发把他们运往目的地。但是,如果有一个人动作太慢没上去(可能被他自己的鞋带绊倒了),他就错过了这趟火车,他将坐在那里等待另一个16毫秒下一趟火车过来。哪怕他仅仅慢了1毫秒,错过这趟车都意味着他不得不等待下一次机会。

在渲染管线中,火车就相当于是前缓冲区(正在显示的内容)与后缓冲区(要显示的下一帧内容)交换。这通常发生在前一帧完成扫描显示结束的时候。假设,GPU可以在一段合理的时间内,执行所有缓冲的渲染指令,这里是每16毫秒前后缓冲交换一次。要维持在60FPS的刷新率,程序就必须在在16毫秒之内结束所有的工作。当CPU花费太长的时间来完成一帧,即使是只晚了1ms,就错过了缓冲区的交换时间,下一帧的扫描输出就开始使用上一阵的数据,然后CPU不得不停下来,等到下一次交换结束。用我们上面的比喻来说,火车就是缓冲区,CPU发送的每帧的指令就是这些乘客。

在这个例子中,我们清楚的看到,由于我们的帧率不够平稳,所以不能使得渲染管线更加稳定。解决WaitForPresent的办法就是在Profiler中忽略它,然后集中在优化其他每个地方。在这个例子中,就是降低场景中的Draw Calls。

其他Profiler信息

Unity Profiler对于挖掘运行时的各类信息非常有用,包括内存使用,Draw Calls,纹理分配以及音频开销。对于雅阁的性能调试来说,在Player Preferences里面关掉多线程渲染是个好主意。这将会使得渲染变慢很多,但是能让你清楚的知道每帧的时间都去哪了。当你优化完成的时候,记得再把多线程渲染打开。

除了Draw call Batching,其他常见的性能开销包括overdraw(通常是大型透明对象或者遮挡剔除不足导致的),蒙皮动画,物理开销,以及垃圾回收(通常是内存泄露或者反复回收引起的)。在你优化场景的时候要注意这些方面。同样要记住,显示最终的VR输出,包括warping和TimeWarp开销,每帧都会消耗大约2ms。

Oculus Remote Monitor

OVRMonitor是Oculus Mobile SDK中最近发布的一个新工具。它帮助开发者理解渲染管线工作的方式并且识别管线停止。它还可以利用无线从GearVR设备上把低分辨率无压缩的视频以流的形式获取回来,这点对可用性测试很有用。

OVRMonitor目前正在开发中,但是这个早期版本仍然可以用来可视化GearVR程序的图形管线。下面是一张截图,是使用该工具审查上述场景时的截图。


Screen-Shot-2015-05-04-at-11.06.34-AM.png

黄色条代表的是VSync间隔,指的是一帧的输出已经结束了。窗口上方的图片是渲染好的该帧截图。图片中间红色的条显示的是TimeWarp线程,可以看到它和实际的游戏是平行运行的。下面的蓝条指的是CPU和GPU的负载,看起来是不变的(这个例子中,4个CPU同时运行)。

这个截图实际上显示了Unity Profiler中WaitForPresent峰值中的一个。时间线中间的那一帧开始的太晚,以至于到下一个竖线的地方还没结束,结果造成CPU阻塞了完整的一帧(缺乏场景截图的那一帧,WarpSwapInternal线程占据了16.25ms)。

OVRMonitor可以帮助我们搞清楚渲染管线从一帧到另一帧发生了什么。它可以用于使用最新SDK编译的任何GearVR程序。更多信息请参考SdkRoot/Tools/OVRMonitor中的文档。更多文档和特性很快就来。

Tips and Tricks

这里有一些我们使用过的或者从其他开发者那里听过的性能技巧。这些并不能保证对所有VR应用有效,但是它们可能给你一些关于潜在解决方案的想法。

  • 最后渲染大型的不透明Mesh。尝试把天空盒放到几何体+1渲染队列,让它在所有不透明物体渲染之后绘制。这可能导致被天空盒遮挡的许多像素被深度测试丢弃,因此节省你的时间。这个技巧也适用于地面和其他静态不透明物体,它们占据很多像素并且很可能大部分被遮挡了。

  • 动态改变CPU/GPU节流限制。你可以在任何时候改变节流限制。如果游戏中大部分都可以以相对较低的设置运行,只有一两个特殊场景不行的话,考虑只在这些场景中加快CPU/GPU。对于简单的场景来说,也可以降低一个或多个处理器的速度,延长电池寿命并减少发热。例如,场景加载的时候可以把GPU设置成0.

  • 不经常的更新渲染目标。如果你把场景渲染到辅助的纹理上,可以尝试使用比主场景较低频率渲染。例如,一个立体渲染的镜子每帧只对一个眼睛刷新一次。这有效的把镜子的帧率降低到30FPS,但是因为每帧都有新数据,对于轻微的移动看起来也是可以的。
  • 降低渲染分辨率。通过降低一点视觉质量,通常可以显著提高游戏性能,例如稍微的减小每只眼睛渲染目标的大小。OVRManager.virtualTextureScale是0.0到1.0之间的数值,控制了渲染输出的尺寸。在老旧设备上稍微降低分辨率是支持较慢硬件的简单办法。
  • 压缩纹理。所有GearVr设备支持ASTC压缩格式,这种格式能明显的减小纹理尺寸。需要注意的是,在本文写作时,Unity4.6期望ASTC压缩是和OpenGL ES3.0一起使用的。如果你使用在OpenGL ES2.0的情况下使用ASTC,你的纹理将在加载时解压,这可能延长程序启动时间。对于OpenGL ES2.0来说ETC1是一个低质量但是通用的方案。
  • 使用纹理图集。如上所述,可以被许多Mesh共享访问的大纹理将会更高效。要避免过多小的单个纹理。


作者:浪尖儿
链接:http://www.jianshu.com/p/8f20c42c9602
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Unity3D模型碰撞检测:从原理到实战的性能与精度平衡方案 碰撞检测是游戏物理引擎的核心基础,它通过计算物体间的几何相交关系,驱动虚拟世界中的交互反馈。其底层原理通常基于包围盒、分离轴定理或网格相交测试,旨在以可承受的计算开销模拟真实物理行为。这项技术的核心价值在于,它决定了应用的交互真实感与运行流畅度,是平衡视觉表现与计算资源的关键。在游戏开发、工业仿真、VR/AR等需要实时物理反馈的场景中,碰撞检测的配置优化直接影响用户体验。本文聚焦于Unity3D开发中常见的模型碰撞检测难题,特别是针对从外部导入的复杂3D模型,深入探讨了如何通过**复合碰撞体构建法**和** 阅读详情

相关推荐

Gfx.WaitForPresent

今天遇到的Unity一大坑 场景Stats如图: FPS才12,这样的开销没理由这么低才对。 CPU和显卡的配置肯定也没问题,博主CPU:i5-4210m,GPU:Geforce 850M。 仔细看发现CPU:main 81.8ms 远大于 Render thread 20.6m。 可见CPU上消耗了大量的资源。 打开Profiler窗口:(

PuzzledBoy 8568

关于Gfx.WaitForPresent的耗时问题

1)关于Gfx.WaitForPresent的耗时问题 ​2)关于Spine Shader冗余问题 3)Unity添加了ARR插件后导出Android错误 4)对压缩格式的纹理调用GetPixels方法的疑问 这是第284篇UWA技术知识分享的推送。今天我们继续为大家精选了若干和开发、优化相关的问题,建议阅读时间10分钟,认真读完必有收获。 UWA 问答社区:answer.uwa4d.com UWA QQ群2:793972859(原群已满员) SpriteAtlas Q:Profiler里看手机上的

UWA—简单优化,优化简单! 5709

【信息科学与工程学】【数据中心】第二十四篇 数据中心DaaS场景及算法

Flink, Kafka Streams, 时序数据库。Flink, Kafka Streams, 流处理引擎。Presto, ClickHouse, 查询加速引擎。Presto, ClickHouse, 查询加速引擎。延迟<50ms,可用性>99.99%,QPS>10K。REST API, GraphQL, API网关。Tableau, Power BI, 自助BI。Tableau, Power BI, 可视化库。Spark, Hadoop, 分布式计算框架。Spark, Hadoop, 分布式计算。

weixin_49199313的博客 1072

WaitForTargetFPS和Gfx.WaitForPresent和Graphics.PresentAndSync

WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我们经常会被问到的参数。想必正在读此文的你也经常在Profiler中遇到过这几项CPU开销过大的情况。对此,我们今天就来好好地聊一聊这几个参数的具体含义和触发规则。 各位开发朋友,作好准备,下面的文章会很干,很难啃! 所以小编自说自话地加了张图....

进击的Unity3d 4270

雷达原理习题答案【西电】

  目前教材用的是陈老师新版的,但是,我发现课后题有一部分是之前某本书里的。答案如下【建议参看原题→查阅答案】 【原题点这里!!点这里!!】 目录跳转功能目前好像只支持网页版 文章目录% 第一章、第二章% 第三章% 第四章% 第五章% 第六章% 第七章% 第八章 % 第一章、第二章 % 第三章 % 第四章 % 第五章 % 第六章 % 第七章 % 第八章 ...

薛定谔的壳的博客 1万+

配电网故障重构/孤岛划分/故障恢复

程序主要复现《基于GA_BFGS算法的配电网故障恢复性重构研究_郑海广》,采用matlab编程软件实现,依据网络结构和DG供电方式对配电网进行孤岛划分,将含有 DG 的配电网拓扑结构看成一个树,搭建成连通图模型,使得将孤岛的划分变成了求取最小生成树,以网损和开关开断次数作为目标,采用 IEEE33 节点配电网为算例,通过遗传算法寻优计算,从而得到最佳的重构方案。

zhangxd212489的博客 2500

(二)GearVR开发应用入门教程:创建Unity项目

b. 选择Create a new keystore,然后点击 Browse Keystore 选择保存签名文件目录,(默认是在工程根目录,user.keystroe, 你也可以修改名称和修改路径,我这里就放在根目录下了)点击保存,回到Unity。(在开发时,这里很郁闷,不选择打出来的apk在Gear上启动不了,还有Oculus那个貌似需要注册开发者账号才可以开发,所以这里如果只加Oculus,又没有注册Oculus账号的话,打出来的apk也是不能使用的。下载你的签名文件,并保存在方便使用的位置。

GarFe的博客 443

DRAM刷新refresh相关知识归类-基础小知识(三)

RAM每一位数据都是通过芯片内的一个小电容充电(或低电平)存储的。但随着时间的推移,电容逐渐失去电荷。为避免丢失存储的数据,必须定期刷新以将电荷(如果存在)恢复到其原始级别。此刷新过程包括读取每个位的值,然后将其写回。在此“刷新”期间,内存被占用,无法执行加载或存储位等正常操作。知道了应该这么做,但怎么去做以及有什么办法更有效率去做,就是接下来要整理的内容。

Paul 安的博客 1万+

【Unity】扒一扒Profiler中这几个“占坑鬼”

原文链接:http://blog.uwa4d.com/archives/presentandsync.html WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我们经常会被问到的参数。想必正在读此文的你也经常在Profiler中遇到过这几项CPU开销过大的情况。对此,我们今天就来好好地聊一聊这几个参数的具体含义和触发

UWA—简单优化,优化简单! 8471

分子模拟入门教程 | 低调使用 建议收藏

该方法只需要原子的核电荷和少数模拟的环境参数作为输入,所有的性质都是通过求解薛定谔方程得到的,不需要使用任何经验参数。经典的原子水平的分子模拟已经成为提高我们对材料科学和生命系统中分子过程理解的最流行的方法之一。全原子模拟是一种非常强大的以原子分辨率呈现信息的方法,因为在原子模拟中,一个粒子代表一个特定的原子。随着计算机硬件和模拟技术的快速发展,分子模拟不仅可以解决基本的、常规的化学问题,还可以应用于各种复杂体系。然而,由于问题的复杂性以及严重依赖于现象的现实情况,最好是逐案确定合适的模拟方法。

pysonger的博客 784

【Dify精讲】第2章:后端服务架构深度剖析

Dify后端采用Flask应用工厂模式实现模块化开发,通过蓝图架构将API分为控制台、Web应用和服务接口三大模块。其设计亮点包括:1) 应用工厂模式支持多环境配置和独立测试;2) 蓝图分层管理实现API模块化,各模块职责清晰;3) 严格遵循RESTful原则设计API接口;4) 使用Flask-RESTful扩展简化API开发。这种架构既保持了Flask的灵活性,又实现了企业级应用的可维护性,是Flask项目架构的优秀实践案例。

wiyi9891的专栏 2126

如何提高Unity Gear VR游戏性能

教你如何提高Unity Gear VR游戏性能 跟马赛克说拜拜   虚拟现实场景   好的,所以你决定用 Unity 来做一个 VR 游戏,并选定了三星 Gear VR 为你的目标平台。做好之后,打开应用,在设备上执行文件再容易不过 –   但有个问题,帧率实在太低。视野边上有闪烁的黑边出现,感觉好像有谁往摄像机操作员的肚子上踢了几脚。你听说过保持稳定的帧率有多重要,

痞子龙3D编程 3613

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

2023年12月机器人技术等级考试试卷(三级理论) 试题解析

http://www.cierobot.com 4095

Unity 5.3 官方VR教程(—)VR综述

如今,随着第一代消费级移动VR产品Samsung Gear VR正式推向市场,而三大核心主力设备也将悉数于2016年Q1和Q2粉墨登场,一向与时俱进的Unity再也坐不住了。 废话少说,让我们来一起看看吧。 PART I UNITY VR简介 Unity内置对若干VR设备的支持,至于具体是哪些设备,不妨看看VRDeviceType这个枚举变量。 本教程主要针对O

蔚蓝色青春的博客 7661

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 149

【专栏导引贴】100+智能优化算法:从背景原理到代码实战(持续更新)

本专栏系统整理100+种现代优化算法,涵盖粒子群优化(PSO)、遗传算法(GA)、鲸鱼优化(WOA)等经典方法,以及白鲸优化(BWO)、非洲秃鹫优化(AVOA)等新兴算法。每篇详解包含生物启发原理、数学模型、代码实现及工程应用,采用统一编程风格,提供可直接运行的实例代码。专栏持续更新,旨在为研究者提供系统化的智能优化算法参考资料,实现从理论到实践的完整知识链。目前已收录23种算法,包括蚁群系统(ACS)、蝙蝠算法(BA)、天牛须搜索(BAS)等自然启发式优化方法。

qq_42212808的博客 3660

不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场(转)

如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~如果你之前曾经为Oculus Rift DK2或者Gear VR开发过,那么心里面一定曾经有千万个草泥马来回奔跑过。虽然Unity从5.1版本开始就支持VR应用和游戏开发,但是从Oculus和Unity双方的开发者论坛讨论情况看,大家都对双方互相推诿责任感到不满。如今,随着第一代消费级移动VR产品Samsung Gea

FoxGame的专栏 2203

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Unity5.3官方VR教程重磅登场-系列1

原地址 PART I UNITY VR Unity内置对若干VR设备的支持,至于具体是哪些设备,不妨看看VRDeviceType这个枚举变量。 本教程主要针对Oculus系列的VR设备,特别是Oculus Rift Development Kit 2(DK2)和消费者版本的Samsung Gear VR(需要配合三星旗舰手机系列使用,如Galaxy S6, S6 Edge

ZON 2791

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

unity5.3 VR开发

转载来自 http://toutiao.com/i6226112237539426818/ 请注重原创 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场 2015-12-09 10:55 如果你不是VR游戏或应用的开发者,可以选择无视下面的内容,这不是给普通用户看的~ 如果你之前曾经为Oculus Rift DK2或者Gear VR开

csdn_cjt的博客 1048

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

在 Oculus和 Gear VR上开发跨平台的 VR应用

本文章由cartzhang编写,转载请注明出处。 所有权利保留。 文章链接:http://blog.youkuaiyun.com/cartzhang/article/details/51425225 作者:cartzhang 说明:本文同步发于蛮牛论坛。http://www.manew.com/thread-89068-1-1.html?_dsign=09548ffa 我花了两个月时间开发了一款

cartzhang的专栏 1万+

(部分原创)unity项目开发中VR工程的优化(下)

(接上文) Anti-Aliasing(反走样(抗锯齿) Anti-Aliasing is highly desirable in VR, as it helps to smooth the image and reduce jagged edges. If you are using Forward Rendering, you may be able to enable MSA

1nd@ntER5 926

Unity5.3官方VR教程重磅登场-系列8 VR开发的更多资料

https://zhuanlan.zhihu.com/p/20550347 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场-系列8 VR开发的更多资料 2 个月前 为了方便大家的学习和提高,我们把跟VR开发相关的外部资源做了整理,这部分内容会随时根据需要更新的。 Unity Centric(以Unity为中心): Unity - Manual: VR Overv

ZON 585

游戏必备组件有哪些_使用DOTS制作一款第三人称僵尸射击游戏

本文,瑞典游戏工作室Far North Entertainment将分享在传统的Unity项目中使用DOTS的经验。我们正在使用面向数据技术栈DOTS重构Unity的核心基础。许多游戏工作室在使用C# Job System、实体组件系统ECS和Burst Compiler后,都无一例外地感受到明显的性能提升,其中就包含了瑞典游戏工作室Far North Entertainment。在Un...

weixin_39785150的博客 303

Unity3D中Gfx.WaitForPresent优化方案

在Unity中,占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀!1. 降低GPU负载(核心方向)

Thomas_YXQ的博客 941

关于Unity3D开发三星Gear VR的初步尝试(一):已实现打包到手机显示

这两天老师催我把前段时间买的三星GearVR在Unity3D尝试打包,不然就白买了,到现在已经成功实现了打包。我把记录贴下来,以免未来可能用。 1.需要的硬件:三星GearVR、三星s8+(其他的几代应该也可以) 2.需要的软件:Unity3D(本人使用的是2017.4.2f2版本)、Java Development Kit 8 (JDK)、Android SDK,版本一般不要太久远都可以(需...

chenchen_fcj程序猿的博客 6547
上一篇: 三星gearvr控制器及手柄全部输入
下一篇: 【Unity3d游戏开发】浅谈Unity中的GC以及优化(转)
FoxGameY
博客等级 码龄13年 81粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值