unity prewarmfiler中的物理部分能优化吗

Unity3D(35)
四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础。牛顿有句话我很喜欢:“如果说我看得比较远的话,那是因为我站在巨人的肩膀上。”
做游戏设计也是一样的,我们写策划文档需要Word、Excel、Visio等办公软件,写程序需要Visual Studio、Eclipse等各种集成开发环境、美术需要3dsMax、Maya、Photoshop……正因为有了这些强大工具,我们的生产力才会越来越高效。所以用记事本写代码、用Windows画图画蒙娜丽莎什么的,只是个人能力的体现,保留一份敬佩的心情就好了,可别真应用到实际工作中哦,老板会疯掉的^_^。
话说不知道当年那个给牛顿带来启迪的苹果,到底是掉在了地上还是真的掉在了牛顿的头上,总之它就是往下掉了。运用基本的初中物理知识我们就知道这是因为地球对苹果施加了重力。同样的还有在“愤怒的小鸟”中,我们把小鸟用弹弓弹向空中之后,始终都会掉落在地面上。在大部分物理引擎中,都可以使用刚体(RigidBody)来模拟这种效果,Unity也不例外。
看下官方文档中对刚体的说明:当一个游戏对象被赋予刚体组件之后,游戏引擎就会对其进行物理效果模拟。同时我们也可以给这个对象施加各种作用力,让它运动起来。另外如果要实现重力的效果,那么相应的游戏物体都必须附上刚体组件。
我在Unity中导入了一个苹果的模型来实验一下重力的效果,选中模型并添加刚体组件。(主菜单→Component(组件)→Physics(物理)→RigidBody(刚体),添加组件的操作都很类似,以后不再赘述。)可以看到属性列表并不是很复杂,稍微介绍一下:
Mass(质量): 学过物理的同学们都知道的吧,质量越大,惯性越大。这里的单位可以自己统一规定,但是官方给出的建议是场景中的物体质量最好不要相差100倍率以上。估计是防止两个质量相差太大的物体碰撞后会产生过大的速度,从而影响游戏性能吧。
Drag(阻力):这里指的是空气阻力,当游戏物体收到某个作用力的时候,这个值越大越难移动。如果设置成无限的话,物体会立即停止移动。
Angular Drag(角阻力): 同样指的是空气阻力,只不过是用来阻碍物体旋转的。如果设置成无限的话,物体会立即停止旋转。
Use Gravity(使用重力): 勾选了这个项,游戏对象就会受到重力影响。
Is Kinematic(是否动态): 勾选这个选项会使游戏对象不受物理引擎的影响,但这不等同于没有刚体组件。这通常用于需要用动画控制的刚体,这样就不会因为惯性而影响动画了。
Interplate(差值类型):如果看到刚体移动的时候一直抽风或者运动的不是很平滑,可以选择一种平滑方式: None(无差值):不使用差值平滑。 Interpolate(差值):根据上一帧来平滑移动。 Extrapolate(推算):根据推算下一帧物体的位置来平滑移动。
Collision Detection(碰撞检测方式): Discrete(离散):默认的碰撞检测方式。但若当物体A运动很快的时候,有可能前一帧还在B物体的前面,后一帧就在B物体后面了,这种情况下不会触发碰撞事件,所以如果需要检测这种情况,那就必须使用后两种检测方式。 Continuous(连续):这种方式可以与有静态网格碰撞器的游戏对象进行碰撞检测。 Continuous Dynamic(动态连续):这种方式可以与所有设置了2或3方式的游戏对象进行碰撞检测。
Freeze Position/Rotation(冻结位置/旋转): 可以对物体在X、Y、Z三个轴上的位置/旋转进行锁定,即使受到相应的力也不会改变,但可以通过脚本来修改。
了解完刚体组件的设置参数后,直接点击测试运行游戏按钮(记得把摄像机对准苹果),结果发现苹果的确是往下坠了,但是并没有停在地面上,而是穿过去了,囧。检查一下发现原来忘了添加碰撞器,于是找个球形碰撞器附加到苹果上就OK了。貌似Unity还自动匹配了碰撞器的大小,省得我自己再调整,真是体贴呀。
如上图所示,绿色的曲线就代表了苹果所带有的球体碰撞器,此时如果运行游戏的话可以发现苹果正确地落到了地上。但是还有个问题,因为我场景里的地形不是水平的,所以苹果落地以后会慢慢慢慢滚向湖中心……给地形添加了碰撞材质貌似苹果还是义无反顾地向湖中心奔去,如果有哪位高人路过还望指点一二。
最后顺便再提一下恒力组件(Constant Force),由于比较容易理解我就不做详细介绍了。一共有4个参数,分别是Force/Relative Force(世界/相对作用力)、Torque/Relative Torque(世界/相对扭力)。
这些参数代表了附加在刚体上的XYZ轴方向恒力的大小,另外还要注意必须是刚体才可以添加恒力。有兴趣可以自己尝试一下给物体一个Y轴方向的力,物体就会像火箭一样飞向天际,哈哈。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:135929次
积分:2164
积分:2164
排名:第15273名
原创:54篇
转载:152篇
评论:22条
(1)(1)(7)(5)(8)(39)(17)(14)(37)(1)(28)(32)(6)(3)(2)(8)(1)Unity中简单的优化物理系统
Unity中简单的优化物理系统
Unity文章转载
这个篇文章的主要目标是给予你一个关于在Unity中简单的优化物理系统
我的游戏物理系统有什么错误吗?
怎么去处理游戏物理系统?
Unity 物理系统有什么缺陷吗?
Unity 是怎样处理物理系统的?
我在 Unity 物理系统上做了什么控制?
在我开始使用游戏物理系统之前我应该关心什么事情?
我应该在时候避免使用物理系统?
我看到了帧速率在下降,这是否是物理系统导致的?
当涉及到物理系统时,便会有以上这些问题,或许你会有更多像上面类似的问题。
是的,是的,我知道!我们全怪那个平果,它为什么要在那一天降临到牛顿的头上?为什么呢,上帝?
物理学也许不是每个人最爱的科目,但是物理学在游戏开发行业中真的是一个非常重要的角色。
想象一种情况,在紧要关头你最终决定提出做一个大事情。一个让人瞩目的,一个使用逼真的物理和图像的大游戏。
设计已经创建出来,架构已经完成,一切看上去似乎已经准备就绪。但是你最终坐了下来,开始在最棘手的部分上工作,“物理系统”!!
此时,似乎所以东西都崩溃了;你无意中看到了很低的FPS,奇怪的移动,碰撞器/触发器 出现了问题,高CPU使用率等等。
不恰当或者不正确的使用物理系统可能会把一些游戏玩家吓跑。这不只是关于不恰当的使用物理系统的问题了;这是关于一个游戏可玩性高不高的问题了。
这些都是不容易解决的问题。物理系统是游戏开发过程中最困难,也是最重要的一部份,这是无法避免的!!
人们可能会说:“好的物理系统需要一个超快的CPU!”。
但是,请相信我,这句话不一定都是对的。多数情况下,可以通过由浅入深进入Unity的海洋中学习Unity 的物理系统是怎样工作的,以便我们实现更好的物理系统。
在我还是一个程序小鲜肉的时候,我便要处理100多个与物理相关的事情。这让我花了近一年的时间记录下了处理物理相关的关键点。
因此,我决定写这篇文章。帮助大家跳跃这个学习阶段的痛苦,成为一个专业的物理系统开发者。
我不打算讲关于物理系统在Unity中是如何工作的,然而我将会在怎么优化你的物理系统中列出技巧和要点。所以,如果你是一个新手,我建议你先去大概了解一下Unity 物理系统。
物理学是一个非常非常庞大的、广泛的概念,我决定分成不同的部分,尽可能做到简单。
接下来,这是一个漫长有趣的过程,请你赶紧系好你的安全带,让我们开始吧!
降低固定时间步(Fixed Timestep)
在Unity文档的说明如下:
“一个不受帧速率影响的时间间隔,用于指定在 FixedUpdate() 函数中执行物理计算每一帧的时间间隔”
默认值为 0.02(每秒),这显示了每 20ms(毫秒)物理更新将会被执行一次。所有 FixedUpdate() 也会每20ms调用一次。
你需要不停的改变这个值,以获得理想的效果。
“如果你打算做一个简单的卡牌游戏,这不需要使用太多的物理系统。然而最好减少调用物理引擎的次数。但是这操作要很细心一点;如果你减少过多的物理引擎调用的次数,你也许不会得到你想要的物理效果。”
让我们通过下面的案例更好的理解 Fixed Timestep 吧!
步骤 1) 创建 3-4 个 球体。让他们保持一些距离:
步骤 2)创建物理材质(通过在Assest文件夹中按下右键-&Create-&Phycics Material),并且设置摩擦系数(Friction Amount)的数值为 0 ,然后设置弹力系数(Bounciness)为 1,再设置弹力混合(Bounce combine)为最大值:
步骤 3)将该物理材质添加到球体碰撞器的物理材质卡槽中去:
步骤 4)为球体添加刚体组件(这将意味着此物体时物理对象):
步骤 5)创建一个平面,并且为其创建一个物理材质(先使用默认值),添加到平面上:
步骤 6)让创建的球体位于平面的上方,并且设置球体的重力选项盒为勾选状态。
步骤 7)点击 Play 按钮,并且查看一下结果。
这个球在做一下一上的动作。(不好意思,污了一下下。)
那么,这与固定时间步(Fixed Time Step)有什么关系呢?
上面只是一个简单的设置,现在我让我们开始玩耍 Fixed Time Step 的值吧!
找到 Edit&&Project Settings && Time,在那里,你能找到 Fixed Time Step ,它的默认值为 0.02 (正如我之前提到的那样)。
现在让我们设置它为 0.1,然后按下 Play 按钮开始游戏。
你有发现有什么不同吗?
首先你会注意到,这些球的运动非常的慢。
然后,你会看到球体穿过了平面而不是反弹回来。
你会问为什么?(不需要弹跳如此的快呀!啊哈哈)
好的,如果你设置 Fixed Time Step 为 0.1,这就意味着物理更新将在每100ms(毫秒)执行一次,这很快就会注意到,将无法检测到碰撞。
这表明,过多的降低 Fixed Time Step 的也是不恰当的。现在让我们改变 Fixed Time Step
的值为一个更为实际可行的&#2 - 0.04。(具体根据球体的需要来定)
现在,如果你开始游戏,你不会看到任何改变。只要看上去还行,那就OK。如果你细心的检查一番,物理碰撞检测会有一点点不同的。
看看下面的图片:
如果你不能跟上步骤来,那么请你参考一下Unity的官方文档。适当的理解 Unity 物理引擎是必须的。
物理碰撞检测会有点延迟,只会在当前帧结束之后才反弹回去。
这在你游戏处于正常FPS下可能观察不到,但是这可能会影响到物理效果。但只要你的需要满足了,这也是没什么关系的。
这将有什么帮助呢?
任何时候你从物理计算中节省下来的计算资源,都可以让给渲染和其他计算密集的处理,所以就可以让你的游戏更加出众。
通过设置 Maximum Allowed Timestep 在物理系统中保持检查!
在Unity文档中的定义如下:
“一个不受帧速率影响的时间间隔,当帧率为最低峰值的时候,物理计算和 FixedUpdate() 事件将不会被执行”
那么,这意味着什么呢?
让我们先在正常的游戏下,去理解它(Maximum Allowed Timestep)。
如果你的游戏在运行的时候能保持在 60 FPS,这就意味着每一帧会执行 0.01666秒。意味着每一帧需要花费 16.7ms(毫秒)。
现在,让我们把 Fixed TimeStep 设置为 0.01,这表明物理更新将每 10ms 执行一次。
这表明,在每一帧中至少会调用一次物理更新,因为 10ms&16.7ms. 现在让我们假设由于某种原因帧率降低到了 30 FPS。
那么,每一帧将会执行 0.0333秒(也就是33.3ms) 。也就意味着在每一帧中会调用3次物理更新(因为一次物理更新花费10ms)。这意味着如果帧率继续下降,每帧内的物理调用还会更多。
这将会导致程序崩溃。为了解决这个问题,下面引入 Maximum Allowed TimeStep。
它的默认值为 33ms(可能是作者搞错了,明明就是0.33333秒 = 333。33ms啊)。正如 Maximum Allowed TimeStep 定义:每当物理更新超过指定的时间,物理更新将会停止。因此,这便为其他进程节约了资源。
在我们的案例中,如果每一帧执行时间增加到 40ms,这将会调用更多的物理更新。
但是现在我们设置 Maximum Allowed TimeStep 为 0.033,也就是33ms&,物理更新将会在 33ms 后停止调用,也就是执行3次物理更新后,便会停止调用,尽管每帧的执行时间超过 50ms 也会如此。
因此为其他沉重的进程节省下一些资源。
这听起来非常的棒,不是吗?
但还是有会一些限制的负面影响。每当发生性能故障,动画和物理便会放慢(意味着画面卡顿,延迟)。
因此,要牢记Maximum Allowed TimeStep 同样是一个重要的因素,如果使用得当,将会得到非常好的效果。
总是有 1-1-1 的比例
放大一个没有物理的对象是没有问题的(就是没有与物理相关组件的物体对象),但是当一个物体时一个物理对象时,我建议你不要对该物体进行缩放。缩放会导致奇怪的碰撞检测,也会影响到物体的下落方式。
“一块大石头在没有任何空气阻力的情况下会很快的落到地面上(如从塔上或其他地方掉下来)。但是如果它周围的物体都放大了,那会让下落看起来速度很慢”。
还有一个选项是调整重力加速度的值让他看起来变得正常,但是这不是最正确的做法。正确的做法应该是保持使用1-1-1的缩放比例,因为Unity的物理引擎在这种情况下工作的最佳。
给你的对象设置恰当的质量
和缩放一样,质量也需要保持精确。
让一架飞机的质量为 1kg 正确吗?
如果你考虑到度量系统准则,Unity的 1 个单位等于 1 kg 质量。同样的,Unity的 物理系统是无量纲的。但是,如果你假定 Unity 的一个单位的长度为米,那么,一个质量的单位为 kg。
你可以得到更完美的结果。并且,Unity在努力解决高浮点数问题,所以尽量削减取值范围是比较理想的解决方案。
这意味着,如果假设你的飞机重 1kg ,那么你的轮子必然不会超过 1/1000 kg。
尽可能避免使用网格碰撞器(Mesh Collider)
对任何物理引擎来说,基于网格的碰撞检测都比原始的碰撞检测需要更多的计算量,这是一个事实。Unity在内部使用了 Nvidia 的 PhysX,因此这是没有什么不同的。
一般来说,
“对于不同碰撞检测的相对成本从高到低的排序为:三角形网格、凸包(具体可以百度百科)、胶囊体、球体、盒子(六面体)、平面、点”
通常,网格碰撞器(Mesh Collider)被标记为凸包(也建议大家这么标记),它将被限制到255个三角形。只有在两个网格碰撞器被标记为凸面(Covex)时才能相互发生碰撞检测。
在 Unity 文档中的说明:
”使用网格碰撞器时会有一些限制。没有标记为凸面(Convex)的网格碰撞器只支持在一个没有刚体组件的游戏对象(GameObjecet)上发生碰撞,如果你想要在一个刚体上使用一个网格碰撞器,这必须要标记为凸面“
理想情况下,应该尽量避免使用网格碰撞体,因为他们会比传统的碰撞器(球体,立方体,胶囊体)带来更多的计算负载,所以最好还是少用。
替代方案是什么呢?
一个简单的替代方法就是让对象的子物体使用原始(传统)碰撞器把它们组合起来(如上图所示)。这样会减少一定的计算量,因为原始(传统的)碰撞器计算速度比较快。
对于复杂的网格,你通常可以使用 Blender(小巧的建模软件)或者其他工具来将它们分解成一些小部分。然后可以用传统碰撞器直接替换掉这些小部分的网格。
我希望我已经给你一个确切的优化描述,但是不幸的是,每个网格都是不一样的,对于我给出一个确切的描述是非常困难的。
后续很快就会来到
这个列表会很长,而且看上去会没有尽头,所以让我们先休息一下,后续的博客会继续介绍其他的提示。
同时我也不希望你一下看太多关于物理的东西而产生不适。
请继续保持关注,然后先从上面几个点开始优化。如果你有更好的替代方案,请也和我们分享一下。如果对上面讨论的内容有任何问题,或者有任何疑问,请在评论区留言,我会很高兴能提供任何帮助。
总结:该篇文章大体讲了一下几个关键字:Fixed TimeStep、Maximum Allowed TimeStep、Mesh Collider、Convex。
这些东西都能在官网组件手册中找到一些详细的说明,如果看不懂该文章所说的内容,还请大家自行去看一看官网的组件手册(还记得我给你说的 Unity 圣典吗)
转载自公众号:Unity墙外的世界
我的热门文章
即使是一小步也想与你分享您的位置 >-- >
Unity 5.X 物理系统专题讲解
我的评分:
发布者:蛮牛教育UnityUE4
所属标签 :
更新时间 :
教程类型 :
教程等级 : 【初级教程】
1,884 次播放
共浏览:1,584 次
今日播放:0 次
正在加载评论...
同软件类别
用户贴士合作模式关于我们
Copyright ?
直线教程,All Rights Reserved.&沪ICP备号
本站常年法律顾问:恒升律师事务所 杜宇律师
本网站所有产品设计,功能及展示形式,均已受版权或知识产权保护
任何公司及个人不得以任何方式复制部分或全部,以及攻击、诽谤本站,违者将依法追究责任,特此声明给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
设计师入口
查看: 5140|回复: 2
最后登录注册时间阅读权限90积分32051
资深设计师, 积分 32051, 距离下一级还需 17949 积分
纳金币33133 精华80
作者:ROD LOPEZ
原文:http://blogs..com//physically-based-shading-in-unity-5-a-primer/
翻译:“小七、子程”
07:38 上传
什么是基于物理的着色呢?基于物理的着色(简称PBS)就是以一种模拟现实中材质和光照的相互影响。直到最近PBS才能应用在即时图形运算中。这种方法在有光源和材质接近真实的场合下优势非常明显。
物理着色是想建立一种友善的方式来实现不同的光照条件下的逼真效果。它模拟光线在现实中的行为,而非使用多个特定的演算模型来模拟,因为后者可能会在一些情况下失真。
为实现这种效果它必须遵循物理原理,包括能量守恒(也就是物体反射出去的光量不可能超过所接收的光量),菲涅耳反射(Fresnel reflections - 所有表面反射在掠射角处更加强烈),以及物体表面如何自我遮挡(Surfaces occlude)等。
Unity 5包含了一些Shader,象是标准着色器(Standard Shader),它们组成了一个易用又完整的PBS光照明模块。标准着色器主要是针对硬质表面(也就是建筑材质)设计的,可以处理大多数现实世界的材质, 例如石头、、铜器、银器或橡胶等。但它也可以非常出色地处理一些非硬质表面的材质,例如皮肤、头发或布料等。
跟&我的&游戏内容有何关联?
基 于物理的着色器并不代表“真实”,单纯加入功能也不一定就能完全决定游戏表现。它适合多种不同的美术风格和美学效果,例如从精确扫描 (Accurately Scanned),到传统拍照(Traditionally Photographed),再到手工绘制(Hand-painted)的各类贴图。
对于制作没有特殊光照表现的2D游戏开发者来说,PBS不是必需的选项。但是如果你想玩玩PBS来创建出酷炫的效果,这里我们将提供一些有用的使用经验。
当我们谈及Unity5中的光照时,不妨引入两个概念,即Context和Content:Context是指Unity原生的一些内容,而Content则是使用者创造的内容(类似于UGC)。
关于CONTEXT
当给一个物件加入光照时,该物件周边的环境是非常重要的。Unity先前的版本中已经提供了一些经典的辅助工具,例如光照探头(Light Probes),它能够对某个位置上的漫反射光照进行采样。而在Unity 5中我们将提供描述周围环境信息更加有效的方式。
07:38 上传
HDR信息是PBS中一个非常重要的元素。它能够更加有效地描述环境信息,例如太阳的明亮度可能会超过蓝天10倍。Unity5中提供了一个原生的通道来处理HDR格式档案,你可以直接汇入副档名为.hdr和.exr的图片。
加入发光效果
07:38 上传
反射探头(Reflection Probe)纪录了某个确定位置的反射情况。Unity5的场景中会预设包含一个反射探头(你可以从Edit-&Scene Render Settings-&Default Reflection来查看它)。你可以修改设定或者采用天空盒(Skybox),不设置具体位置。
当然,你也可以建立自己的反射探头。可以从GameObject-&Light-&Create Reflection probe找到这个功能。
然后就可以进行以下的操作:
将反射探头拖到场景中的任意位置,它就会开始主动获取周围环境的光照信息了。
每个反射探头都有作用区域(就是探头周围显示的黄色区域)。里面的物体会从反射探头上获取反射信息。
更多的图元着色:
由于Unity5的动态全域光照(dynamic GI),光照探针也包含了间接的光线反射信息,并透过标准着色器作用于每个图元。这样不管光线是直接或间接地作用于法线贴图,它的效果看起来都会很棒。
07:38 上传
这张图只用了一个往下照明的光源,桶子旁边和底部并没有受到直接光源
动态全域光照(Dynamic GI)
全域光照是PBS模块中Context层面重要的成员。为了对Unity5中的全域光照有一个全面的理解,最好的方法是看看我们发表的有关动态全域光照的文章。
颜色空间(Color Space)
PBS和标准着色器都工作在线性和Gamma模式。HDR编码、反射探针的资料以及其他Content都会与你选择的颜色空间相呼应。但为了达到最佳(最舒服)的视觉效果,你应该尽可能保持在线性颜色空间。
内容(The Content)
内容是你直接建立的资料,标准着色器确实对Unity传统的材质工作流程进行了一些改进,希望你会满意。
材质编辑器(The Material Editor)
07:38 上传
标准着色器还引入了一个新的材质编辑器,它使PBS的材质编辑工作比以前的非PBS材质更简单。
新编辑器更精简,但却提供了材质所有可能选项。在新编辑器中我们不需要选不同的着色器来改变贴图通道,不会再出现“texture unused, please choose another shader” 这样的错误,不再需要切换着色器来改变混合模式。
你会有一些备选的贴图通道,任何一个没用到的通道都会在编译时被优化掉,因此不用担心效率问题。Unity会根据你输入到编辑器中的资料来产生正确的程序,使它用最高的效率执行。
小技巧:你可以用ctrl+点击贴图来预览大图,还可以分别查看颜色和Alpha通道。
按照你想的方式点亮一切!
PBS当然和Unity5的动态全域光照(GI)是兼容的,全域光照系统完全了解标准着色器的工作方式,并在产生场景时将其考虑在内。
PBS和GI合体使开发者可以快速改变整个场景的光照条件,把不可能变成可能,效果也更逼真。
下图中的小镇你会注意到它和文章开头那幅有不同的光照设定。静态物体看起来更有质感和层次,整个场景远近分明。这正是PBS的魔力所在。一旦材质加入PBS构建,它就会变得和光照条件完全独立,大大减少工作量!
这就是我们喜欢它的理由,也是我们认为你也会喜欢它的理由!
07:39 上传
这个维京人的村庄我们打算在Unity5.0发布的同时也在Asset Store上发布。赞喔!
最后登录注册时间阅读权限90积分6667
高级设计师, 积分 6667, 距离下一级还需 3333 积分
纳金币2715 精华0
good to know !!
最后登录注册时间阅读权限70积分3667
中级设计师, 积分 3667, 距离下一级还需 1333 积分
纳金币105 精华0
不知道何时发布?
站长推荐 /1
纳金名模第144期冰箱3d模型:数量95个,大小为255MB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
Powered by - X2.5
Narkii Inc.分享给朋友:通用代码: <input id="link4" type="text" class="form_input form_input_s" value="" />复 制flash地址: 复 制html代码: <input type="text" class="form_input form_input_s" id="link3" value="" />复 制分享视频到站外获取收益&&手机扫码分享视频二维码2小时内有效unity3d超强LOD优化测试,600个物理!下载至电脑扫码用手机看用或微信扫码在手机上继续观看二维码2小时内有效unity3d超强LOD优化测试,600个物理!扫码用手机继续看用或微信扫码在手机上继续观看二维码2小时内有效,扫码后可分享给好友没有优酷APP?立即下载请根据您的设备选择下载版本
药品服务许可证(京)-经营-
节目制作经营许可证京字670号
请使用者仔细阅读优酷、、
Copyright(C)2017 优酷
不良信息举报电话:

我要回帖

更多关于 unity优化 的文章

 

随机推荐