unity导入3d模型开发者怎样获得3D模型的大小尺寸

教你如何开发VR游戏系列教程四:UI 设计_Unity3D教程_中国AR网
&当前位置: &
这篇帖子主要介绍怎么创建VR UI。常见形式:1、2D&NGUI、UGUI2、3D模型由于后续NGUI可能停止更新以及与U3d后续版本不兼容问题,那么主要就以UGUI为例。NGUI简单说说。3D模型的话没什么好说,就跟普通VR场景一样设置。2DUI,可以两个屏幕都显示,也可以只显示一个。一、双屏显示状况:NGUI怎么分屏?创建一个panel,会发现UI Root下有个Camera,那么直接创建两个这样的Camera,模拟人的左右眼即可。(注意depth的设置,否则看不到NGUI)3D模型怎么分屏?设置Camera如下图,LeftCamera与RightCamera的视口矩形大小(Viewport Rect)设置如NGUI中的设置。最后效果图:二、单屏显示状况:Camera的设置同分屏情况设置好NGUI/UGUI在Left或者RightCamera中的位置即可。
中国AR网()为更好的服务国内AR技术爱好者 ,现已推出“AR那些事”官方公众号,请在微信公众账号中搜索「armeiti」或者加QQ群:,即可获得每日内容推送和最新的AR开发教程及AR H游戏资源哦!
上一篇: 下一篇:
有话您说 访客日访客日访客日访客日访客日[转载]把3D模型导入到Unity3d中作为地形,(一个网友的,这里先谢谢了)
一,在Unity3D
的Project面板中新建一个文件夹,并为其命名为Editor。并在其文件夹下新建一个Javascript文件,命名为MountainsCreate.
二,把下面的代码拷贝到MountainsCreate.js上。
@MenuItem ("Terrain/3DObject to Terrain")static function
Object2Terrain ()
&// See if a valid object is
selected&&&
&var obj = Selection.activeObject as
&if (obj.GetComponent(MeshFilter) == null) {
& EditorUtility.DisplayDialog("No mesh selected",
"Please select an object with a
mesh.","Cancel");&&&
&}else if ((obj.GetComponent(MeshFilter) as
MeshFilter).sharedMesh == null)
& EditorUtility.DisplayDialog("No mesh selected",
"Please select an object with a valid mesh.",
"Cancel");&&&
&if (Terrain.activeTerrain == null)
& EditorUtility.DisplayDialog("No terrain found",
"Please make sure a terrain
exists.","Cancel");&&&
&&& var terrain
Terrain.activeTerrain.terrainD&&&&&&&
// If there's no mesh collider, add one(and then remove it later
when done)&&
&var addedCollider =
addedMesh =
objCollider = obj.collider as MeshC
&if (objCollider == null)
& objCollider =
obj.AddComponent(MeshCollider);&&&
& addedCollider =
&}else if (objCollider.sharedMesh == null)
& objCollider.sharedMesh =
(obj.GetComponent(MeshFilter) as
MeshFilter).sharedM&&&
& addedMesh =
&Undo.RegisterUndo (terrain, "Object to
Terrain");
&var resolutionX = terrain.heightmapW
&var resolutionZ = terrain.heightmapH
&var heights = terrain.GetHeights(0, 0,
resolutionX,
resolutionZ);&&&
&// Use bounds a bit smaller than the actual
otherwise raycasting tends to miss at the edges
objectBounds = objCollider.
&var leftEdge = objectBounds.center.x -
objectBounds.extents.x + .01;
&var bottomEdge = objectBounds.center.z -
objectBounds.extents.z + .01;
&var stepX = (objectBounds.size.x - .019) /
resolutionX;
&var stepZ = (objectBounds.size.z - .019) /
resolutionZ;&&&
&// Set up raycast vars
&&& var y =
objectBounds.center.y + objectBounds.extents.y + .01;
&var hit :
RaycastH&&&
var ray = new Ray(Vector3.zero, -Vector3.up);
&var rayDistance = objectBounds.size.y +
&var heightFactor = 1.0 /
rayD&&&&&&&&&&&
&// Do raycasting samples over the object to see
what terrain heights should be
&var z = bottomE
&for (zCount = 0; zCount &
resolutionZ; zCount++)
& for (xCount = 0; xCount &
resolutionX; xCount++)
&& ray.origin = Vector3(x, y,
z);&&&&&&&
&& if (objCollider.Raycast(ray,
hit, rayDistance))
{&&&&&&&&&&&
heights[zCount, xCount] = 1.0 - (y -
hit.point.y)*heightF&&&&&&&&&&&
heights[zCount, xCount] =
0.0;&&&&&&&
& z += stepZ;
&terrain.SetHeights(0, 0,
heights);&&&
(addedMesh)
& objCollider.sharedMesh =
(addedCollider)
& DestroyImmediate(objCollider);
三,把从3D Max或Maya中制作的地形对象导入到Unity3d资源文件夹中。模型名为Mountains.
四,点击工具栏菜单中的Terrain---&Create Terrain,创建一个地形。
五,把导入的地形从Unity3D
Project面板中拖放到Hierarchy面板中。在Hierarchy面板中选中Mountains对象,然后选中工具栏菜单中的
Terrain---&3DObject to
Terrain.此时就能看到您自己导入的修改化地形了。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Unity中在界面上显示3D模型的方法 - 推酷
Unity中在界面上显示3D模型的方法
& & & & 我们在mmo中通常会有在GUI上面显示一个3D模型的需求,比如查看人物装备的界面。我网上搜索了下,搜到的结果都是直接绑定一个模型到UI的指定位置,最多添加一个摄像机以便控制2d渲染和3d模型渲染的先后层次关系。NGUI和Daikon Forge的Demo中也是这么做的。这么做比较直接简单,通过一个新的摄像机并指定渲染内容和层级确实也可以一定程度上解决模型和GUI的遮挡问题。但是这个方法并不完善,如果界面一多,想让模型和ui契合起来是一件不可能完成的任务。
& & & &我的方法是使用RenderTexture。即创建一个RenderTexture(具体方法网上很轻易的可以搜索到),创建一个摄像机指定其绘制目标是RenderTexture,这样摄像机渲染的内容都会绘制到这张RenderTexture上面。我们可以把这张RenderTexture当作普通纹理赋给ui,比如我使用Daikon Forge,所以就可以创建一个dfTextureSprite,然后设置其Texture属性的值为renderTexture。
& & & &当我们打开查看人物装备的界面的时候,我们创建一个人物模型并指定新的camera的位置(调整下坐标以便可以正常的显示出来),这样一个3d模型就可以显示在我们的ui上面。并且当打开一个新的界面(比如装备Tip界面),3d模型也会老老实实的呆在后面,而不会穿帮显示在最前面。
& & & &同样的方法,我在预览技能效果界面里面也是如此处理的,一个场景就出现在一个小窗口中。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 unity3d 制作3d模型 的文章

 

随机推荐