unity3d 绘制矩形网格如何实现 先出现网格再出现模型 的特效?

1007人阅读
模型导入unity后,可以使用unity的Inspector面板对模型在某个坐标轴上进行平移、旋转和缩放操作(如图1)。
& & Inspector面板提供功能是所见即所得的,调整后立刻可以看到效果,相当的方便。但是这些功能还不能完全满足游戏开发的要求,比如为了减轻美工的工作量一些游戏对场景中的模型标准作出了一些规定,使这些模块化的小模型能按照一定的规律拼接成丰富多样的大模型。拼接过程往往要对模型的local
coordinates进行调整才能最终形成一个“无缝”的大模型,而这个过程常常是在游戏运行时进行(或者地图初始化时),因此需要引擎提供修改模型mesh的接口。十分幸运的是unity提供了这样的接口。
Mesh and MeshFilter
& & 需要修改模型的网格数据,首先第一步是要想办法获得模型的mesh,这里我们需要Mesh Filter,unity文档中的解释如下:
The Mesh Filter takes a mesh from your assets and passes it to the&&for rendering on the screen.
& & 如上图,Robot手里拿的枪的网格数据保存在以gun_model命名的Mesh里,而这个Mesh则隶属于Gun_model的MeshFilter。知道了网格数据保存的位置,接下来需要做的就是获取这些数据并修改它们。下面使用一个简单的cliff模型为例子介绍如何修改模型的网格数据。
Simple Example
& & 首先来看原始的模型长什么样?
& & 现在需要修改模型的网格数据,把模型最高点的高度坐标挑高一倍,代码如下:
& &1:&&using&UnityE&
&2:&&using&System.C
&&&4:&&[RequireComponent(typeof(MeshFilter))]
& &5:&&public&class&example
: MonoBehaviour {
& &6:&&& &&void&Update()
& &7:&&& && &&&Mesh mesh = GetComponent().
& &8:&&& & Vector3 [] vertices = mesh.
& &9:&&& &&&
&&10:&&& &&int&p
&&11:&&& &&int&flag
&&12:&&& &&float&maxheight
&&13:&&& &&while&(p
& vertices.Length) {
&&14:&&& && &&&if(vertices[p].z
& maxheight) {
&&15:&&& && && && &maxheight = vertices[p].z;
&&16:&&& && && && &flag =
&&17:&&& && &&&}
&&18:&&& && &&&p++;
&&19:&&& & }
&&20:&&& & vertices[flag] +=&new&Vector3(0,
0, maxheight);
&&21:&&& &&
&&22:&&& & mesh.vertices =
&&23:&&& & mesh.RecalculateNormals();
&&24:&&& & }
&声明:此篇文档时来自于社区,是网友自行发布的Unity3D学习文章,如果有什么内容侵犯了你的相关权益,请与官方沟通,我们会即时处理。
& & 注意:本例所使用的模型的local坐标系的z轴相当于unity的y轴,因此上述代码时对z轴进行修改。代码运行的结果如下:
& & 是不是很简单!unity强大的接口以及较为详细的文档对开发者来说确实是一个福音,另外使用C#编程对于我这苦逼的不合格C++程序员来说确实很爽!
& & 另外有一点值得注意:上述代码所对应的脚本一定要drag到GameObject里MeshFilter的拥有者,才能使代码生效。如下图5必须要把script拖拽到Cliffs01才能生效,因为在cliffs_1cm的GameObject里只有Cliffs01拥有MeshFilter(如图6)
57857.png&(17.84 KB, 下载次数: 0)
昨天&11:25&上传
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:290914次
积分:5419
积分:5419
排名:第4215名
原创:259篇
转载:36篇
评论:52条
(49)(96)(55)(10)(23)(24)(16)(7)(11)(4)Unity3D动态生成模型_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Unity3D动态生成模型
上传于|0|0|暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢3dsmax模型和导入模型到unity3d的一些心得_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:68,636贴子:
3dsmax模型和导入模型到unity3d的一些心得收藏
我觉得有三点感觉在导出时比较重要的1.单位的设置3dsmax系统单位设置就设成厘米显示单位公制也设成厘米这样在max里的一网格就是10厘米,像这样子但感觉不是很理想,我这把枪太长了差不多占了6个网格,OhNo这样子就有60厘米长了,我得给它来个整体的缩放,我要把它缩放成1厘米这样到unity就是1米刚好,可是现在一网格是10厘米不好缩放,等缩放成一厘米我的这把枪就看不见了,还是把系统单位设成1毫米可靠,设成1毫米再把枪缩放到大致一个网格那么长,大致就像这样子2.导出设置这不用说了大家都会设置(不过细节还是得说下),不过具体情况还是需要具体分析的像我上面的这种情况就是具体情况,来张图比较好看看到图中展开的项了吗嵌入的媒体必勾,不勾导出到unity3d不给你把贴图导进去(很多人导出后贴图丢失没有大多出在这),勾上后导出到unity3d就会自动生成贴图文件夹像我下图生成的贴图文件夹就是PanLong.fbm,不勾你准备作死吧(不过我有第二手补救办法),办法来了不过还是要举例子,有些人喜欢先把fbx模型拖进unity3d工程然后再把贴图拖进来(那你等着一个一个为材质球上贴图吧),遇到这种情况先拖贴图进unity3d工程后拖fbx进来(此种方法是你导出时没有勾选嵌入媒体的情况下,勾选了那就容易了自动为你倒入贴图生成贴图文件夹,贴图不丢失),导出单位设置是厘米(这就是具体情况具体分析了),因为我是想以厘米作单位的但是系统单位设置毫米是为了适应max的网格大小这样刚好一格一厘米,所以导出面板大小当然以厘米作单位具体看你做多大的东西了在unity3d中显示的比例图(刚好1单位1米)3.轴心问题3dsmax的模型导出到unity3d都会面临轴心问题,轴心不对,不过在max里是可以解决这个问题的调节仅影响轴可以解决看图最方便(把仅影响轴旋转到图示那样就解决了)再来张unity3d的图可以看到轴调整过来了这就是我的心得与大家分享了
[蓝鸥]unity3d 权威师资,量身打造学习计划,120天从入门到精通![蓝鸥]unity3d Unity官方授权培训中心
这是要加精的节奏~~不过纠正个小地方~~一个是max里的单位最好就设置为cm不要变了~~然后缩放物体到准确的实际大小,这样能保证在Unity中默认的导入因数下物体尺寸比例是正确的~~~最后导出的时候使用实用工具面板里的重置变换按钮,这样缩放值就会被重置到100%,也就是unity里的1,然后导出就可以了,包括做后一步的坐标轴旋转也不需要调整啦~~~
想问一下一个问题,之前试过导出一个max文件,勾选了嵌入的媒体,放到unity中生成了180多张贴图,原来的只有40左右吧,导致文件臃肿得不行啊,修改动画模式后又重新生成180+张,这个是什么情况呢?是建模不规范吗?模型是别人做的,不太懂。。。
楼主做这行的是不是要把3dmax 和maya都装上啊?
请问楼主,相比3DMAX模型,C4D的模型你用到的多不多?可不可以直接导入?
上回你那个编译器类更改图片的是怎么实现的?
其实先导入贴图,再导入不带贴图的FBX,unity可以自动拾取贴图。如果导出FBX中带贴图1.生产很多文件夹,不方便管理。2.可能会出现大量重复贴图。3.FBX文件体量增加,如果只有MESH的话只要几百K。导出前重置变换下,然后调整轴向。旋转轴那个其实要看需求的,如果不转的话有些SHADER和脚本会无法使用,如镜面。是根据轴向计算的。
unity3d-全程实战教学模式,入门+精通+应用,4个月变身VR开发工程师!月薪10000..起!unity3d7天免费试学!就业后付款!现在报名立减1000,先到先得!!
感谢楼主德分享。。
学习一下,这个很重要也是基础的知识啊
涨姿势了!涨姿势了!lz,有什么关于3d max和unity的都拿出来讨论讨论吧。。。
我只想对楼主说,我爱你
相当长姿势~~~
第一遍看的时候真个人都是再看一遍带入maya算是明白了一点QAQ偶只会maya伤不起啊~突然发现偶制作诸多不规范TAT学生党膜拜之~
还是不要嵌入媒体的吧,贴图可以共用的,要不版本库得增大不少啊
嵌入媒体。。。。可能会浪费很多资源,而且可能会导致资源重复,掌控难度大大提升了。而且材质一般都不会用diffuse的吧,最后还得手动定义一大堆东西,不差这贴图的时间了。况且可以先导入贴图再导入fbx
1格是多少是看视图范围的
模型中有中文导入到unity3d,会出现乱码,这个怎么办?
这位大神,麻烦请教您两个问题。1,unity的免费和收费版本有什么区别吗?2,我是软件工程大一学生,已经学完了c语言和c++,想自学unity,但是我看网上说unity需要java语言,那我是要先学java再学unity吗?
这位大神,麻烦请教您两个问题。1,unity的免费和收费版本有什么区别吗?2,我是软件工程大一学生,已经学完了c语言和c++,想自学unity,但是我看网上说unity需要java语言,那我是要先学java再学unity吗?
精辟,3dsmax里面有个重缩放世界单位,用这个去校对模型尺寸是最合理的。 另外,调轴心最好还是从顶视图创建一个BOX 以这个BOX模型轴心去对齐要调轴心的物体,然后转BOX为网格或多边形,把BOX的本来6个面删除,再附加要调轴心的模型。 这样,是很精确地调轴心。
感谢分享!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或M Unity3D实现模型的描边,指定相应的 ,在 上面出现一圈亮边 Other systems 其他 246万源代码下载-
&文件名称: M& & [
& & & & &&]
&&所属分类:
&&开发工具: C#
&&文件大小: 4557 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:Unity3D实现模型的描边,指定相应的模型,在模型上面出现一圈亮边-Unity3D achieve stroke model, specify the appropriate model, the model appears in a circle above the bright side
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&M\Assembly-CSharp-vs.csproj&&.\Assembly-CSharp.csproj&&.\....ts\Resources\Materials\Capsule.mat&&.\......\.........\.........\constructor.mat&&.\......\.........\.........\Cube.mat&&.\......\.........\.........\Cylinder.mat&&.\......\.........\.........\Plane.mat&&.\......\.........\.........\Sphere.mat&&.\......\.........\Scripts\MouseOrbit_ForRTS_CSharp.cs&&.\......\.........\.......\SelectObject.cs&&.\......\.........\.......\SelectObjectNew.cs&&.\......\.........\.......\ShowSelected.cs&&.\......\.........\.......\ShowSelectedBump.cs&&.\......\.........\.haders\OutLine.shader&&.\......\.........\.......\OutterLineComposer.shader&&.\......\.........\.......\OutterLineCutoffBody.shader&&.\......\.........\.......\OutterLineShapeBlur.shader&&.\......\.........\.......\RimLightSpce.shader&&.\......\.........\.......\RimLightSpecBump.shader&&.\......\.........\Textures\a04.jpg&&.\......\Scenes\OutterLines.unity&&.\......\.tandard Assets\Character Controllers\Sources\PrototypeCharacter\Constructor.FBX&&.\......\...............\.....................\.......\..................\Materials\constructor_done.mat&&.\......\...............\.....................\.......\..................\Textures\constructor_diffuse.png&&.\......\...............\.....................\.......\..................\........\constructor_normals.png&&.\Library\AnnotationManager&&.\.......\assetDatabase3&&.\.......\AssetImportState&&.\.......\AssetServerCacheV3&&.\.......\AssetVersioning.db&&.\.......\BuildPlayer.prefs&&.\.......\BuildSettings.asset&&.\.......\EditorUserBuildSettings.asset&&.\.......\EditorUserSettings.asset&&.\.......\expandedItems&&.\.......\FailedAssetImports.txt&&.\.......\guidmapper&&.\.......\InspectorExpandedItems.asset&&.\.......\metadata\00\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\..\&&.\.......\........\.6\06ea7c067d69bee43aa2acdfc593f07b&&.\.......\........\16\16ecbf4b8df0f&&.\.......\........\.8\35cd4cb12bdfe1eb1499e&&.\.......\........\.d\1db45c4acbcd75d22dbd8d12&&.\.......\........\21\21c8fa96cce736dbec7a7&&.\.......\........\30\bd3c3057d4e&&.\.......\........\.7\37d45fe2a6ada666edd9ba8&&.\.......\........\.9\390a6a760a37b584790ffc0aab041089&&.\.......\........\44\449b48f7eb5d87a4baaa5fb73f875a59&&.\.......\........\.f\4ffd5bbbce&&.\.......\........\51\51e79fc3ab35e2e4c85fbecad0666ad9&&.\.......\........\.3\531c14f8d5cdc4e5baa83ee6e16f783a&&.\.......\........\.4\974ef0b2806&&.\.......\........\.6\dd08e4e8cf006df489a77a&&.\.......\........\.b\5bc09d08ca&&.\.......\........\61\61caf1b570&&.\.......\........\74\d6aad2dc0&&.\.......\........\.c\7c785c57f8fc75965d22&&.\.......\........\.e\7e0b0a994dedb&&.\.......\........\.f\7f75a648f5b0d654abd24f&&.\.......\........\81\81eb3a66e1aa3abc9801eb&&.\.......\........\90\90bdf47b1c3ff2f4ca916e69d7a4a377&&.\.......\........\.7\97b050d43ac7c4d2b9f6cbb&&.\.......\........\.c\9ca44fe8c95dbbc47ac2b2f3cc3ecc50&&.\.......\........\a1\ab5a4c8c76ebfbe237e84&&.\.......\........\.2\a2e0670d7c&&.\.......\........\.c\aca59e8d07e5f1f4e9cc0c&&.\.......\........\.e\aeebb2bd5fc23e37b45a&&.\.......\........\b3\b365ebbb8a08c&&.\.......\........\.6\bee42a4c8c9a91e26bf8&&.\.......\........\c8\c81dfca3d436e&&.\.......\........\.a\cabb64c830d06bd421b9d1&&.\.......\........\db\db373ebcc2a6c794a975a231c657a0ff&&.\.......\........\e2\efe4aae090cc474500ba&&.\.......\........\.5\e53c8c3dcc4ff5cb45c3f6&&.\.......\MonoManager.asset&&.\.......\ProjectSettings.asset&&.\.......\ScriptAssemblies\Assembly-CSharp.dll&&.\.......\................\Assembly-CSharp.dll.mdb&&.\.......\................\CompilationCompleted.txt&&.\.......\ScriptMapper&&.\M-csharp.sln&&.\M-csharp.suo&&.\M.sln&&.\New Unity Project 14-csharp.sln&&.\New Unity Project 14-csharp.suo&&.\New Unity Project 14.sln&&.\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache&&.\ProjectSettings\AudioManager.asset
&输入关键字,在本站246万海量源码库中尽情搜索:3D网格地图的实现方式
现在倒是有一些2D网格的插件,但想实现3D的网格,除了寻路外,还会在网格上放置建筑。附老外有一张图
要评论请先&或者&
726 || this.offsetHeight>700){if(this.offsetWidth/726 > this.offsetHeight/700){this.width=726;}else{this.height=700;}}" style="max-width:726max-height:700" title="点击查看原图" onclick="if(this.parentNode.tagName!='A') window.open('/forum/attachment/Mon__504bd62619fe5cc.jpg');" alt="网格" />
楼主我以前实现过这个效果,而且还根据地形的高低添加了移动点。刚找了一下代码实在找不到,不过我可以给你一个思路。1.使用LineRenderer组件来绘制线2.使用Terrain.activeTerrain.SampleHeight(transform.position)方法得到当前点的高度,将点段按照矩形的方式循环绘制在地形之上。3.以前因为我考虑添加流动点,所以我是将条线都看作一个游戏对象,因为线段是由两个2组成,根据由高向底计算流动点的速度。真的非常抱歉 代码找不到了,要不然直接给你就能用。
:楼主我以前实现过这个效果,而且还根据地形的高低添加了移动点。刚找了一下代码实在找不到,不过我可以给你一个思路。1.使用LineRenderer组件来绘制线2.使用Terrain.activeTerrain.SampleHeight(transform.p .. ( 01:32) 呵呵,精华代码片段 &可惜了
学习一下思路
activeTerrain.SampleHeight必须在地形上用吧,如果我的地形是自己制作的模型呢?应该怎么获取某个点的高度信息
:楼主我以前实现过这个效果,而且还根据地形的高低添加了移动点。刚找了一下代码实在找不到,不过我可以给你一个思路。1.使用LineRenderer组件来绘制线2.使用Terrain.activeTerrain.SampleHeight(tr... momo能不能给提供以下思路,我现在想做一个类似一些商店经营的游戏,就是在一个平面图上,可以放置建筑物的,平且建筑物移动的时候是按照格子的距离移动的?比如说一个6x6的网格上面,放置一个2x2的建筑物,移动建筑物的时候是按照最小一个格子的单位移动。UI我用的是NGUI做的?小弟恳请给个思路,小弟现在才刚刚接触Unity3D不多时,先谢过了!
:楼主我以前实现过这个效果,而且还根据地形的高低添加了移动点。刚找了一下代码实在找不到,不过我可以给你一个思路。1.使用LineRenderer组件来绘制线2.使用Terrain.activeTerrain.SampleHeight(tr... 游戏是2D的
坐等高手回复}

我要回帖

更多关于 unity3d实现下雨特效 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信