zoukankan      html  css  js  c++  java
  • Unity3D场景搭建之地形编辑

    游戏场景中不仅有各个游戏对象以及相应的建筑物,其中各式各样的地形也是令人身入其中。
    本文尝试在Unity3D编辑器中进行地图编辑的学习,来搭建一个工厂场景,有山,有水,有树,有草,有建筑。
    为了方便地形编辑,Unity官方提供了标准的资源包:
    Assets → Import Package → Environment 导入环境资源包
    Environment属于Unity所提供的标准资源包, 但如果没有可以去官网下载
    下载地址为 http://unity3d.com/cn/get-unity/download?ref=personal
    导入到自己的项目中去,Assets/Standard Assets文件夹提供了标准的Assets:

    在层次面板中执行菜单Asset->3D Object->Terrain,点击后会创建一个地形

    点击Terrain,在inspector视图中点击设置按钮,可以设置很多它的属性,例如Terrain Width(地形宽度),Terrain Length(地形长度),Terrain Height(地形高度)

    在设置的左边有很多按钮,下面一个个来介绍下:

    首先介绍第二个按钮 Paint Height (绘制高度)
    这个按钮是用来改变地形高度的
    Brushes下面的图形是笔刷形状
    Settings下面可以设置Brush Size(笔刷大小),Opacity(透明度),Height(高度)
    高度的旁边有一个Flatten按钮,点击后会一下子把地形全部提高到设置的高度,为后续提供方面
    重要:将地形的高度抬高是为了使地形上可以往下刷深度,从而制造湖泊之类的地形
    现在我们介绍第一个按钮:Raise/Lower Terrian(地形升降)

    第一个按钮是让部分地方隆起或凹陷
    按住Shift键刷就会凹陷(Lower),不按就是隆起(Raise)
    可以使用不同的画刷绘制各种地形,隆起的部分就是山脉,凹陷的就是湖泊
    接下里我们是用第三个按钮:Smooth Height(平滑高度)
    第三个按钮可以柔化地形的高度差,让山脉看着平滑一些然后我们通过第四个按钮:Paint Texture(绘制纹理) ,为地形放上点击Edit Textures按钮,选择Add Texture,在弹出的对话框中单击Albedo(RGB)中的Select按钮


    然后就会弹出选择纹理的对话框:

    选择叫做GrassRockyAlbedo的纹理
    最后点击Add Terrain Texture对话框的Add按钮,完成纹理的添加
    选中这个纹理,通过画笔在地形部分刷上该纹理
    重复上面的操作,再添加一个叫做CliffAlbedoSpecular的纹理
    选中这个纹理,通过画笔在地形的山脉部分刷上该纹理,以便山脉和平地有所区分
    接下来我们添加树木和植被
    在我们下载的Environment资源包中有一个叫SpeedTree资源,里面包含树木和植被的一些预制体
    然后我们使用Terrain的第五个按钮:Places Trees(添加树木)
    点击下面的Edit Trees按钮,选择AddTree选项,在弹出的AddTree对话框中,单击 Tree Prefab后面的按钮
    然后会弹出Select GameObject对话框,在里面选中Broableaf_Desktop,点击Add,添加完毕

    按照上面的步骤再添加Palm_Desktop的树木:

    下面设置中的属性分别是
    Brush Size: 画笔大小,一次性添加多少颗树,要批量添加时调大
    Tree Density: 树的密度,控制树的密度
    Tree Height:  树的高度,后面有个Random的选项,是否随机的意思,选中后可以选一个范围高度,然后添加的树的高度在这个范围中随机高度 (现实中树怎么可能都一样高)
    Lock Width to Height:  是否锁定树的宽度和高度(和图片一样,拉伸就不好看了)
    Random Tree Rotation:  是否随机树的方向(树有的会长歪,随机歪向一个方向)
    设置好之后在场景里单击就能添加了,在需要的位置添加大树木和小树木,示例图:

    接下来,添加草地,点击倒数第二个按钮:Paint Details(绘制细节单击 Edit Details按钮,选中Add Grass Texture....(跟前面一样),选中GrassFrond02AIbedoAlpha
    在Add Grass Texture中把Min Width设置为0.3,Max Width设置为0.5,Min Height设置为0.3,Max Height设置为0.5(根据需要设置),单击Add,完成添加
    然后通过左键点击Terrain添加草地,Shift+左键可以去除草地
    注意:考虑到性能消耗问题,unity默认设置,调试模式下草地在超出一定高度后就无法看到,但是最终作为游戏运行时是可以看到的,效果图:


    接下来添加水的效果,创造湖泊

    Water(Basic)->Prefabs,其中有两个水效果的预制体,将WaterBasicDaytime拖到地形的大坑中,名字改为Water

    通过缩放按钮 拉伸水的大小,填满整个大坑,然后通过移动按钮把水向上移动到合适的高度,效果图:
     
    创建光源,光源是场景的重要组成部分。光源决定了场景环境的明暗、色彩和氛围。合理使用光源才可以创造出完美的视觉效果
    GameObject → Light 会出现可供选择的光源类型
    因为场景中有一个默认的方向光源就够用了,所以无需添加其他光源
    导入外部模型
    可以把需要的外部模型导入到场景中,调整在地形上合适的位置,如厂房、烟囱、油桶等等...
    添加角色和控制
    Assets ->import package->Characters
    在Assets->Standard Assets->Characters中有一个FirstPersonCharacter(第一人称角色控制器)文件夹和ThirdPersonCharacter(第三人称角色控制器)文件夹
    把FirstPersonCharacter ->Prefabs文件夹中RigidBodyFPSController拖到场景里

    此时,运行游戏,恭喜你,做出了一个能漫游操作的游戏,WASD前后左右,鼠标控制方向。
    最终我做的效果图:

    好像有模有样的,作为入门地形编辑学习,仅供参考,当然一个完整的游戏,还需要好多东西需要去做。
    参考:https://www.cnblogs.com/nicopoiduang/p/8179935.html
  • 相关阅读:
    大数运算(涉及到格式问题)
    UltraEdit
    汉化eclipse3.6.2
    安装Microsoft SQL Server Management Studio Express是报错29506
    Java相对路径/绝对路径
    恢复Unbuntu的启动项
    UNC路径
    make: g++:命令未找到
    找到个学习html的网站
    HDU 3756 三分
  • 原文地址:https://www.cnblogs.com/MakeView660/p/12269645.html
Copyright © 2011-2022 走看看