unity为什么点击桌面右下角模型后右下角不显示

PHP、Go、Android、前端、爱就是幸福(ai9475.com)
Unity3D【新手问题】阴影效果不显示的原因
Unity 不显示阴影的原因:
模型尺寸太大了,镜头比较远
把模型缩小,镜头一定要拉到最近才能看到
这是我遇到的问题和解决方法,
另外一定要设置 Directional light 的 shadow type
设置 shadow type 属性为 soft shadow 或者 hard shadow
还有个无语的情况,新手们一定要注意:
如果看到编辑区一片黑啥都看不到,甚至新建场景都没用的话,那可能是 layers 显示设置的问题,
注意看看右上角有个 layers 下拉选项,选中 everything 则全都显示出来了,好大个坑~~~
折腾了一下午,另外阴影的其他可能的情况,可以参考下面的网址:
上个图吧:
一开始我的模型尺寸是比较大的,怎么都看不到阴影 好崩溃。。。
下面是缩小尺寸大概 100倍 后的效果,直接就可以看到所有模型的阴影啦。。
扫码向博主提问
非学,无以致疑;非问,无以广识
擅长领域:
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!&&& 最近房价涨得太快也懒得去看房了,空下来的时间看一下unity,发现unity3D-3.5版官方的AngryBots示例效果很震撼,就下了一个unity来玩玩。想把unity玩起来自然离不开model,面对3dsmax这些nb工具,作为一名服务器端程序员对此表示压力很大,无奈只能求助谷哥找一些model。
&&& 废了九牛二虎之力后把model从3dsmax导入unity,把模型drag到一个1*1的场景里,结果如下图......
&&& 呃,我的模型呢?还好在Hierarchy里有我导入的model,双击后可以看到(给我的Peon打了一个Point light^_^):
&&& 看来是model的scale太小了,为什么会太小了呢?3dsmax和unity的unit scale不一样?怎么设置才能达到想要的效果?本文将逐一解答这些问题。
一、比例问题的产生原因
&&& 简而言之:在默认情况下U3D系统的一个单位(1unit)等于1米,而在3dsmax中默认的单位是inch,因此产生了上述的比例问题。下面的引用来自unity官方论坛:
&&& By default, the units in Unity are meters. So the default size for terrains is 1000m x 1000m, with a max height of 600m. You can change this in the Terrain-&Set Resolution menu. &&& The default settings for gravity, and audio dopplar also reflect the default 1 unit = 1m.
&&& This means that if you want to use the units as some other distance (eg, inches, feet, miles, or whatever), as well as importing models scaled to this new size, you'll also need to adjust the gravity and dopplar settings accordingly so that they produce sensible results for your new world scale.
知道了比例问题产生的原因,接下来就要想办法来解决。
二、解决办法
&&& 解决方法有两个方面,一种是在unity中调整模型的Scale Factor;另一种是在3dsmax导出的时候按照unity的单位导出。下面分别进行介绍:
(1)在unity中进行调整
&&& 模型由3dsmax按照inch的系统单位导出成FBX格式的文件,导出的模型一个单位代表一个inch。unity每个单位代表1米,而unity导入FBX模型是以厘米为最小单位的,因此需要对模型进行一定比例的放大操作。放大比例应该设为多少呢?先做一个实验:
&&& 在max中创建一个1*1的plane,并把参数设置成:
&&& 导出fbx文件时注意把单位设置成厘米(cm):
&&& 将fbx文件导入unity后,把Insepector面板里的Scale Factor设为1,即放大100倍。下图左侧是一个1*1的terrain(一平方米),右侧就是放大100倍后的plane。可以看出来plane的边长大概是terrain的2.5倍,也就是2.5米左右。可以来计算一下:max中一个1inch * 1inch的plane,其实也就是2.54cm * 2.54cm &&& 以cm为单位导出成fbx文件 &&& 导入unity后放大100倍,变成2.54米 * 2.54米(2.54个单位)的plane。看来这个流程应该是正确的。
总结&&在unity中调整放大比例:
& & 1、如果模型以厘米为单位从max中导出,则导入unity放大100倍可以得到想要的结果。
& & 2、如果模型以inch为单位(默认情况下)从max中导出,则导入unity后需放大254倍。1inch * 2.54 && 2.54cm && 乘以100倍得到结果
PS:unity的模型放大有两种方法:一种方法是修改FBXImporter中的Scale Factor数值(上文提到的Insepector面板里的Scale Factor,其值默认为0.01),将Scale Factor的数值恢复为1,但这样做据说会占用模型资源,比较消耗物理缓存;另一种方法是从Hierarchy中选中待修改物品,使用Scale同时放大x,y,z各100倍,这种设置据说耗费的资源比较少,同时还能通过使用脚本来进行这个放大操作,十分方便。
(2)在3dsmax中进行调整
&&& 在max中进行调整就是要对模型进行整体缩放,这里有两种方法。
1、第一种方法:在max中选中模型后按R键或者在左上部的工具栏按钮可以进行缩放,还可以在右下角找到,进行缩放。但这种方法不会改变模型本身的绝对大小,只是改了一个缩放因子,因此不推荐使用。
2、 第二种方法是等比例缩放:全选模型 &》点右上角的工具面板 -》点击&更多&
-》点击&重缩放世界单位&
-》点击右边的按钮
-》按照图中的比例选择&场景&然后点击确定 完成模型的整体放大。
&&& 放大比例是1:100,max导出时要放大100倍。(注意导出FBX文件时&单位&要选择厘米)
三、比例问题总结
&&& unity中默认的unit scale和3dsmax的默认scale是不一致的,因此在unity中使用max制作或导出的model时一定要注意比例问题。
下图是一个128个单位(inch)的cliff,图中白色的方块是unity中一个4*4的terrain。128个单位的inch等于128*0.2米,从图中可以看出比例应该是正确的。
四、Unity3d和3dMax美工部分总结
&& &&本小节的内容全部转载自
&&& 3dsmax2010安装插件,输出FBX的类型导入Unity3D中。默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体。
1.面数控制
&&& 在MAX软件中制作单一Game Object物体的面数不能超过65000个三角形,即32500个多边形Poly,如果超过这个数量的物体不会显示出来,这就需要我们合理分布多边形和模型数量。打开MAX场景,选择File/Properties/Summary Info可以打开文件属性记录。其中Faces可以看到每个物体的实际数量,模型面数要少,个体数量不能超过65000个Faces面。
&&& 有特殊效果的模型需要单独制作,物体命名要统一(SanLou_YanHuiTing_JingZi或者SanlouYanhuitingJingzi),但不能出现重复,否则整合模型会被覆盖,给后期工作造成不必要的麻烦。
2.建模控制
&&& Unity3D软件支持Line渲染和编辑之后所产生的模型。大部分模型都依靠Polygon进行制作。在模型表面可以承认多出四边形的面,但不渲染交错的面。默认情况下,U3D引擎是不承认双面材质的,除非使用植物材质球Nature类型。所以在制作窗户、护栏等物体,如果想在两面都能看到模型,那需要制作出厚度,或者复制两个面翻转其中一个的Normal法线。
3.文件的放置
&&& 模型可以继承MAX的材质,但是文件的设置要按照以下形式进行放在项目的Assets文件夹内,新创建一个Object文件夹。并在其中创建Materials和Texture文件夹(分别自动存放材质球和贴图)。模型物体并列保存在Object文件夹内。这个规律模式不要打乱,否则会破坏整个系统逻辑。
4.材质数量控制
&&& 物体材质要赋予默认的标准材质standard,特殊材质需要特殊调节(玻璃,镜面等),透明材质需要给双面。如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。
&&& 如果一个物体给与多个材质球,我们需要用Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。
&&& 如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。
&&& 综合而言Unity3D软件对于材质的兼容还是很好的。
5.物体的质感
Diffuse、Diffuse Bumped、Bumped Specular,这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。
&&& 这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha通道的图像,形成和原图像相叠加的效果。
Diffuse Detail
&&& 这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。
Reflective
&&& 其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。
Transparent
&&& 其中各种类型可以创造出透明的效果,需要增加具有Alpha的通道贴图。
&&& 注意:如果要做玻璃贴图,Alpha如果全是灰色或黑色(即要求全透明),那么Alpha就会失效,如果要全透明,材质Alpha其中必须至少有1像素为白色。
&&& 其中Soft Occlusion Leaves类型主要应用于片状的树叶材质。
6.关于复制
&&& 场景中的灯光布局,重复的模型物体都可以使用系统Prefab进行关联复制,这样可以改变一个参数的同时将所有关联物体属性改变。
7.山脉控制
&&& 在创建山脉之后,选择Terrain/Set Resolution可以设置山脉的大小和属性。
&&& 需要注意的是,默认情况下Terrain Width和Terrain Height为1000米。如果设置这个数值太小,那么绘制草的时候会产生偏移,因为草的尺寸必须减少到0.1的单位。
&&& 也就是说,山脉在处理0.1单位的时候会产生0.01的偏差,如果模型太小,这种偏差是显而易见的,所以建议用户不要让模型过小。
8.光晕控制
&&& 光晕又称为Lens Flare即灯光光效。可以选择一个GameObject物体给与Component/Rendering/Lens Flare,并在Flare中增加一个Standard Assets/Light Flares/50mm Zoom项目。这样在运行之后就会产生光晕。但有时候如果光晕太远太高却看不到。一种办法是将光晕离近,另一种办法是将所有摄影机Camera的Far clip plane的数值增加。
9.摄影机控制
&&& 如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。
References:
阅读(...) 评论()程序写累了,就来玩玩酷跑小游戏吧,嘿嘿。
雨松MOMO送你一首歌曲,嘿嘿。
Unity3D研究院之将UI的点击事件渗透下去(九十)
Unity3D研究院之将UI的点击事件渗透下去(九十)
围观42808次
编辑日期: 字体:
处理UI还有3D模型的点击推荐使用UGUI的这套事件系统,因为使用起来比较简洁,不需要自己用代码来发送射线,并且可以很好的处理同时点击UI和3D模型上。
1.给3D摄像机挂一个Physics Raycaster组件。Event Mask过滤掉UI.
2.用unity自带的Event Trigger 或者
就可以对UI 或者 3D模型进行点击事件的监听了
3.OK 当UI与模型相互叠加的时候,优先响应UI,并且响应最前面的UI.
4.如下图所示,前面是UI后面是3D模型,被挡住的模型或者UI是不会被响应的。
假如想把点击的事件透下去,让所有的UI或者模型都能正确的响应事件,怎么办呢?
代码: 把这段脚本挂在最前面的UI上。 然后当接收到点击事件后,调用PassEvent把当前的事件透下去。由于UGUI的事件有很多种,比如点击 、抬起、拖动、落下、第二个参数就是ExecuteEvents.Handler 把对应的Handler传进去就行了。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using UnityEngine.UI;using System.Collections.Generic;&public class Test : MonoBehaviour,IPointerClickHandler ,IPointerDownHandler,IPointerUpHandler{ &&&&&//监听按下&&&&public void OnPointerDown(PointerEventData eventData)&&&&{&&&&&&&&PassEvent(eventData,ExecuteEvents.pointerDownHandler);&&&&}&&&&&//监听抬起&&&&public void OnPointerUp(PointerEventData eventData)&&&&{&&&&&&&&PassEvent(eventData,ExecuteEvents.pointerUpHandler);&&&&}&&&&&//监听点击&&&&public void OnPointerClick(PointerEventData eventData)&&&&{&&&&&&&&PassEvent(eventData,ExecuteEvents.submitHandler);&&&&&&&&PassEvent(eventData,ExecuteEvents.pointerClickHandler);&&&&}&&&&&&//把事件透下去&&&&public void&&PassEvent&T&(PointerEventData data,ExecuteEvents.EventFunction&T& function)&&&&&&&&where T : IEventSystemHandler&&&&{&&&&&&&&List&RaycastResult& results = new List&RaycastResult&();&&&&&&&&EventSystem.current.RaycastAll(data, results); &&&&&&&&GameObject current = data.pointerCurrentRaycast.gameObject ;&&&&&&&&for(int i =0; i& results.Count;i++)&&&&&&&&{&&&&&&&&&&&&if(current!= results[i].gameObject)&&&&&&&&&&&&{&&&&&&&&&&&&&&&&ExecuteEvents.Execute(results[i].gameObject, data,function);&&&&&&&&&&&&&&&&//RaycastAll后ugui会自己排序,如果你只想响应透下去的最近的一个响应,这里ExecuteEvents.Execute后直接break就行。&&&&&&&&&&&&}&&&&&&&&}&&&&}&&}
这样UI下面那些对应接收点击事件的地方都可以响应到了。。如下图所示,我点击在前面的UI后面的消息也能响应到了。
本文固定链接:
转载请注明:
雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。
您可能还会对这些文章感兴趣!后使用快捷导航没有帐号?
 论坛入口:
  |   |    |   | 
查看: 16621|回复: 1
使用Unity3D遇到过的所有问题及解决方法(续)
  文/拉撒路
  关于unity中权重与max有差异的问题
  将模型fbx文件放在场景中, 检查右侧inspector面板quality参数, 一般默认是auto也就是自动。这里可以设定一个顶点最多受几根骨骼影响,可以看到unity最多支持到一个点被4根骨骼影响权重,超过这个数的话 在max中有效,进了unity就会失效……
QQ截图52.jpg (48.7 KB, 下载次数: 26)
13:44 上传
  关于虚拟体不能为最上级的问题
  这是我一位朋友遇到的问题,可能大部分人都没遇到过,我大概描述下问题。在我们制作有坐骑的角色时,可能根骨骼就不再是质心了,有时候是bone有时候是虚拟体。其实bone的话也可能出错,但是如果是虚拟体基本就是百分百出错,具体表现为,在unity中找不到根骨骼的dummy点,并且如果这个dummy点上有动画,会影响unity中角色的父层级。
  这里介绍俩个问题,第一个是max导出的文件,unity会自动在所有骨骼模型的父级,生成一个层级,就是图中bip01上的boss1层。第二是store in root这个选项,是指动画内容生成在哪一个节点,默认是在最父级,也就是unity自动生成的boss1层。这样boss1挂在动画文件和脚本内容,bip01及以下则是骨骼信息。
QQ截图15.jpg (22.82 KB, 下载次数: 21)
13:44 上传
  那么重点来了,max中的dummy点与unity自动生成的boss1节点在unity看来是同一类型的节点,而unity默认的根骨骼叫做bip01(或bip001)。所以当我们在bip01上又加了一dummy作为父级,unity就直接把这个点当做它自己生成的boss1了。理解了这一点,就很好想到如何解决问题了,没错,只要把dummy点的名字改成bip01,然后把质心名字随便改成其他什么都好。这样再导入到unity中就可以被识别了……
  以上内容,亲测是可行的,但是因为看不到unity的源代码,所以原理是否如此也只能是猜测。
  关于动画压缩的补充:
  补充一点,关于uinty动画压帧的问题,对前文的文件压缩方法三,用mortion builder对fbx文件来压缩帧数控制,之前在项目中有用到过,效果还是比较明显的。1.用mortion builder 任意版本修改FBX文件并直接打开,帧率设置成12.5,2.然后在animation工具栏下选择勾选Plot on frame,选择12.5帧,Filters to apply 选项选 Unroll,然后点击右下角的Plot就可以了减帧了。不过有时候还要自己手动调整下,毕竟会有掉帧的现象。
  以下是针对unity中模型常见问题的整理,由于模型也是由动作导出,所以还是归类在动作文档当中。
  一、部分或全部面片透明
图片3.png (131.44 KB, 下载次数: 26)
13:45 上传
  此类问题非常常见 具体出现原因也有很多 常见的如法线异常、顶点没有合并、透明贴图错误、辅助线方向错误、模型属性错误等。
  法线、顶点、透贴的问题比较常见处理办法也比较常规 不再解释。这里说下辅助线和模型属性问题。
  辅助线
图片4.png (66.31 KB, 下载次数: 25)
13:45 上传
  如图所示 unity中将四边面自动转换成三边面时会出现方向错误的情况 有时会导致UV变形贴图出错
  解决方案
  (1)在Max显示面板下 取消Edges Only显示辅助线
图片5.png (16.03 KB, 下载次数: 20)
13:45 上传
  (2)检查辅助线方向 找到出错处 用Cut工具划出实线纠正错误
图片6.png (24.19 KB, 下载次数: 26)
13:45 上传
  模型属性
  在模型的制作、绑定、调动画过程中可能会出现一些误操作改变模型属性,导致其在unity中显示异常。常见的如启用骨骼属性、可见性小于1以及在导入导出过程中模型属性出现未知错误。
  解决方案:
  (1)启用骨骼属性 常见于绑定及调动画过程中误改了模型。只需在动画下拉菜单下打开骨骼工具面板,找到对象属性关掉启用骨骼的勾选即可。如图
图片7.png (79.88 KB, 下载次数: 21)
13:45 上传
  (2)可见性小于1&&在右键对象属性面板下,修改过可见性参数,会导致模型透明,将其参数调回到1即可。如图& && && && && && && && && &
QQ截图49.jpg (52.49 KB, 下载次数: 23)
13:45 上传
  (3)模型属性的未知错误 常见于反复导入导出操作后,模型有可能出现各种意外,解决办法也比较简单。在max中导出obj格式的模型即可,因为obj只记录模型的网格信息不回带其他。
  (1)在unity中偶尔出现mesh丢失的情况也会导致模型不显示,只要找到对应mesh放回skinned mesh renderer下的mesh选项即可。
  (2)同一模型的两个面片间距离过近,可能会导致unity无法识别哪一个在前哪一个在后导致模型透明。
  (3)多个模型所在渲染层不同、材质分配的不同,也会导致图像上的前后关系错乱,产生模型透明的错觉,要配合程序修改层级别或材质。
渲染层级.png (6.43 KB, 下载次数: 26)
13:45 上传
材质.png (4.67 KB, 下载次数: 22)
13:45 上传
  一、模型缩放异常
  常见的缩放错误包括模型整体缩放异常、四肢缩放动画异常、缩放隐藏异常等。
  1.模型整体缩放异常 有时在max中看起来尺寸正常的模型,导入到unity中会过大或过小,导致此类问题的原因通常有三种。
  (1)unity参数异常 在fbx文件inspector面板model分类下的scale factor参数异常,
图片8.png (10.92 KB, 下载次数: 25)
13:45 上传
  通常出现这种问题是因为max中的单位与unity中的单位不统一,在单位转化的过程中出现异常,解决方案也很简单参照其他显示正常的模型,scale factor的参数是多少,修正异常模型的参数即可。
  (2)max中模型有缩放 在max里查看模型缩放参数不为100,通常是由于模型在完成后没有进行重置变换(reset xform)。
  解决方案 只要将模型缩放到合适大小,添加重置变换命令并塌陷即可。
图片9.png (14.62 KB, 下载次数: 22)
13:45 上传
图片10.png (17.34 KB, 下载次数: 22)
13:45 上传
  (3)模型的父级有缩放 通常出现在非角色的模型上,模型作为子级被链接到其他物体(如虚拟体、bone骨骼或其他模型等)时,其父级发生过缩放。解决方案 检查整个链接关系的缩放。
  2.四肢缩放动画异常 骨骼缩放动画,尤其是bip骨骼缩放动画,在max和unity中的计算方式不同,max中父级的缩放不会影响子级,但导入到unity中就会影响。所以一些在max里看起来正常的缩放动画,在unity中会拉扯的非常夸张。目前尚无有效的解决方案,只能是尽量缩放末端骨骼(小臂、小腿)而不去缩放首端(大臂、大腿、躯干)
  另 如果确实需要做橡胶人一类的全身都需要拉伸的角色动画,可以考虑用位移拉伸代替缩放拉伸,实现方案有几种,但都十分复杂,暂不在此介绍。
  3.缩放隐藏异常 是指用缩放手法来控制模型的出现和消失时,由于max和unity的帧率不同(max一般默认每秒30帧、unity默认每秒60帧),会出现一个介于出现和消失之间的错误中间帧,
QQ截图08.jpg (13.53 KB, 下载次数: 20)
13:45 上传
  解决方案 修改max帧率为60,这样就可修改掉错误中间帧,之后再将帧率改为30,改好的中间帧仍将被保留下来,此时导出即可解决问题。步骤如图
图片11.png (50.84 KB, 下载次数: 24)
13:45 上传
图片12.png (2.38 KB, 下载次数: 24)
13:45 上传
图片13.png (37.4 KB, 下载次数: 27)
13:45 上传
图片14.png (3.48 KB, 下载次数: 18)
13:45 上传
  注:此操作导出时不可勾选烘焙 否则无效。
  相关阅读:
很好的整理!赞一个!unity模型导入后比例变成0.01
MAX模型导入Unity3D时,导入设置里的缩放因子(Scale Factor)默认是0.01.
一、比例问题的产生原因
简而言之:在默认情况下U3D系统的一个单位(1unit)等于1米,而在3dsmax中默认的单位是inch,因此产生了上述的比例问题。下面的引用来自unity官方论坛:
知道了比例问题产生的原因,接下来就要想办法来解决。
二、解决办法
解决方法有两个方面,一种是在unity中调整模型的Scale
Factor;另一种是在3dsmax导出的时候按照unity的单位导出。下面分别进行介绍:
(1)在unity中进行调整
模型由3dsmax按照inch的系统单位导出成FBX格式的文件,导出的模型一个单位代表一个inch。unity每个单位代表1米,而unity导入FBX模型是以厘米为最小单位的,因此需要对模型进行一定比例的放大操作。放大比例应该设为多少呢?先做一个实验:
在max中创建一个1*1的plane,并把参数设置成:
导出fbx文件时注意把单位设置成厘米(cm):
将fbx文件导入unity后,把Insepector面板里的Scale
Factor设为1,即放大100倍。下图左侧是一个1*1的terrain(一平方米),右侧就是放大100倍后的plane。可以看出来plane的边长大概是terrain的2.5倍,也就是2.5米左右。可以来计算一下:max中一个1inch
* 1inch的plane,其实也就是2.54cm * 2.54cm ——& 以cm为单位导出成fbx文件 ——&
导入unity后放大100倍,变成2.54米 * 2.54米(2.54个单位)的plane。看来这个流程应该是正确的。
总结——在unity中调整放大比例:
1、如果模型以厘米为单位从max中导出,则导入unity放大100倍可以得到想要的结果。
2、如果模型以inch为单位(默认情况下)从max中导出,则导入unity后需放大254倍。1inch * 2.54 &&
2.54cm && 乘以100倍得到结果
PS:unity的模型放大有两种方法:一种方法是修改FBXImporter中的Scale
Factor数值(上文提到的Insepector面板里的Scale Factor,其值默认为0.01),将Scale
Factor的数值恢复为1,但这样做据说会占用模型资源,比较消耗物理缓存;另一种方法是从Hierarchy中选中待修改物品,使用Scale同时放大x,y,z各100倍,这种设置据说耗费的资源比较少,同时还能通过使用脚本来进行这个放大操作,十分方便。
(2)在3dsmax中进行调整
在max中进行调整就是要对模型进行整体缩放,这里有两种方法。
1、第一种方法:在max中选中模型后按R键或者在左上部的工具栏按钮可以进行缩放,还可以在右下角找到,进行缩放。但这种方法不会改变模型本身的绝对大小,只是改了一个缩放因子,因此不推荐使用。
2、&第二种方法是等比例缩放:全选模型
&》点右上角的工具面板&-》点击“更多”
-》点击“重缩放世界单位”
-》点击右边的按钮
-》按照图中的比例选择“场景”然后点击确定完成模型的整体放大。
放大比例是1:100,max导出时要放大100倍。(注意导出FBX文件时“单位”要选择厘米)
三、比例问题总结
unity中默认的unit
scale和3dsmax的默认scale是不一致的,因此在unity中使用max制作或导出的model时一定要注意比例问题。
下图是一个128个单位(inch)的cliff,图中白色的方块是unity中一个4*4的terrain。128个单位的inch等于128*0.2米,从图中可以看出比例应该是正确的。
四、Unity3d和3dMax美工部分总结
&&本小节的内容全部转载自
3dsmax2010安装插件,输出FBX的类型导入Unity3D中。默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体。
1.面数控制&
在MAX软件中制作单一Game
Object物体的面数不能超过65000个三角形,即32500个多边形Poly,如果超过这个数量的物体不会显示出来,这就需要我们合理分布多边形和模型数量。打开MAX场景,选择File/Properties/Summary
Info可以打开文件属性记录。其中Faces可以看到每个物体的实际数量,模型面数要少,个体数量不能超过65000个Faces面。&
有特殊效果的模型需要单独制作,物体命名要统一(SanLou_YanHuiTing_JingZi或者SanlouYanhuitingJingzi),但不能出现重复,否则整合模型会被覆盖,给后期工作造成不必要的麻烦。
2.建模控制&
Unity3D软件支持Line渲染和编辑之后所产生的模型。大部分模型都依靠Polygon进行制作。在模型表面可以承认多出四边形的面,但不渲染交错的面。默认情况下,U3D引擎是不承认双面材质的,除非使用植物材质球Nature类型。所以在制作窗户、护栏等物体,如果想在两面都能看到模型,那需要制作出厚度,或者复制两个面翻转其中一个的Normal法线。
3.文件的放置&
模型可以继承MAX的材质,但是文件的设置要按照以下形式进行放在项目的Assets文件夹内,新创建一个Object文件夹。并在其中创建Materials和Texture文件夹(分别自动存放材质球和贴图)。模型物体并列保存在Object文件夹内。这个规律模式不要打乱,否则会破坏整个系统逻辑。
4.材质数量控制&
物体材质要赋予默认的标准材质standard,特殊材质需要特殊调节(玻璃,镜面等),透明材质需要给双面。如果一个物体给与一个材质球,那么Unity3D对于材质数量和贴图数量没有任何的限制。&
如果一个物体给与多个材质球,我们需要用Multi/SubObject来实现,但是这种罗列的材质球的数量没有严格的控制,但尽量保持在10以内,过多的数量会导致一些错误。&
如果不使用Multi/SubObject材质球,也可以选择一些面,然后给与一个材质球。这样系统会自动将其转换成Multi/SubObject材质。&
综合而言Unity3D软件对于材质的兼容还是很好的。
5.物体的质感&
Diffuse、Diffuse Bumped、Bumped
Specular,这三种类型为常用类型,其中Bumped需要增加Normal法线贴图来实现凹凸。&
这种材质为贴花材质,即相当于Mask类型,可以再Decal(RGBA)贴与一个带有Alpha通道的图像,形成和原图像相叠加的效果。&
Diffuse Detail&
这种材质可以创造出污迹和划痕的效果,即相当于Blend混合材质。&
Reflective&
其中各种类型可以创造出金属反射效果,需要增加Cubmap贴图。&
Transparent&
其中各种类型可以创造出透明的效果,需要增加具有Alpha的通道贴图。&
注意:如果要做玻璃贴图,Alpha如果全是灰色或黑色(即要求全透明),那么Alpha就会失效,如果要全透明,材质Alpha其中必须至少有1像素为白色。&
&&& 其中Soft
Occlusion Leaves类型主要应用于片状的树叶材质。
6.关于复制&&&&
场景中的灯光布局,重复的模型物体都可以使用系统Prefab进行关联复制,这样可以改变一个参数的同时将所有关联物体属性改变。
7.山脉控制&&&&
在创建山脉之后,选择Terrain/Set
Resolution可以设置山脉的大小和属性。&
需要注意的是,默认情况下Terrain Width和Terrain
Height为1000米。如果设置这个数值太小,那么绘制草的时候会产生偏移,因为草的尺寸必须减少到0.1的单位。&
也就是说,山脉在处理0.1单位的时候会产生0.01的偏差,如果模型太小,这种偏差是显而易见的,所以建议用户不要让模型过小。
8.光晕控制&&&&
光晕又称为Lens Flare即灯光光效。可以选择一个GameObject物体给与Component/Rendering/Lens
Flare,并在Flare中增加一个Standard Assets/Light Flares/50mm
Zoom项目。这样在运行之后就会产生光晕。但有时候如果光晕太远太高却看不到。一种办法是将光晕离近,另一种办法是将所有摄影机Camera的Far
clip plane的数值增加。
9.摄影机控制&
如果场景中有多架摄影机,那么如何确定第一打开时间所显示的摄影机,就需要设置Camera属性中的Depth数值,数值越大的摄影机越优先显示。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 右下角时间点击没反应 的文章

 

随机推荐