Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)

时间:2024-04-04 19:47:51

1.参考 Fantasy Skybox FREE 构建自己的游戏场景

  • 资源准备


    在菜单栏Assets的import package中有两个资源包:Environment、Characters,将它们下载导入。再到Asset Store中搜索Fantasy Skybox Free,将其下载导入(我在资源商店中没有找到这个资源,所以我就用Skybox Series Free替代了)。
    提醒一下, 你可以在C:\Users\用户名AppData\Roaming\Unity\Asset Store中找到自己从Asset Store下载的资源。
  • 创建地形


    先在Hierarchy窗口创建一个Terrain对象,然后在Terrain的Inspector窗口中对其进行修改,如下图:
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    (1).1可以造山,将它选中后,再点击下面brushes中的图案,按住鼠标左键,就可以在Scene场景中“造山”,而brushes中的图案则会影响你造山的形状,Bursh Size代表刷子的大小,Opacity则是敏感程度。如果这时你按住shift键,就可以反过来磨平你之前造出的山。下面的也是一样,可以通过shift键来取消自己之前的造物。
    (2).2可以制造等高地形,用它你可以制造一个高原,其中Height属性决定高原的高度。
    (3).3可以将你造出的山峰的棱角磨平,可以让山峰变得更为平缓。
    (4).4可以绘制纹理,在Textures哪里选择一个纹理之后就可以绘制你的Terrain的表面。选择的第一个纹理将是主纹理,其他纹理是在其基础上绘制的。
    (5).5可以种树,在Trees选好预制体后可以在Scene场景中通过点击来种树。
    (6).6可以种草,可以绘制Terrain的表面细节,具体操作与种树一样。
    我的地形构建如下:
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    (其实里面是有草地的,只是太小了观察不到。)
  • 创建天空盒


    先创建一个Materials,命名为skybox,再将它的Shader改为Skybox/6 Sided,然后在资源Fantasy Skybox中找到下面六张图导入。
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    它们的名称分别是FluffballDay加上Back/Bottom/Front/Left/Right/Top,然后根据名字将对应的图片放入到skybox中。
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    在Tint Color中着色,可以形成类似阴天、黄昏的效果。
    将Exposure的值改变,可以调整曝光,达到傍晚、黑夜的效果。
    我的Skybox如下:
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    在这里我是通过调整Exposure的值来形成傍晚的效果的,
  • 整合场景


    为摄像机添加天空盒组件:在菜单栏Component中,选择rending中的skybox,再将自己之前创建的天空盒添加到skybox组件中。
    创建自己的人物:从之前导入的资源Characters中选择ThirdPersonCharacter中的预制体,取消它的重力:
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)
    调整它的位置,然后就可以在自己设置的场景中为所欲为了。
    Unity3d Note3 (用 Skybox 与 Terrain 构建自己的一个游戏场景)

2.写一个简单的总结,总结游戏对象的使用

在unity3d文档中GameObject有以下定义

GameObjects are the fundamental objects in Unity that represent characters, props and scenery. They do not accomplish much in themselves but they act as containers for Components, which implement the real functionality.

所以,一个游戏对象其实只是一个容器,它只有一些基础的属性,剩下的还得自己通过添加组件来构建它。我们可以给它们添加C# script,写出各种方法来定义它的行为和属性,控制它的动作,然后我们还可以给它们添加纹理,给他们各种外观,我们还可以添加其他组件来定义它的属性、行为,达到各种效果。游戏对象是由它拥有的组件来决定它的功能的。