
用Unity3D创建简单漫游 1
基本设置 1
修改视角控制键为右键 9
如何取消浏览窗口上的右键菜单 10
植物效果设置 10
水面效果的设置 15
烘培光影贴图的处理 16
如何制作连续加载的场景漫游 29
用Unity3D创建简单漫游
1. 建模中使用的图片、文件、文件夹等以及模型中物体、材质等的名称都不能使用中文或者特殊符号,可以使用英文字母、数字、下划线等
2. 调整Max的单位为米
3. 烘培光影的设置
4. 模型的中的植物效果,第一种是单面片植物,需要设置其轴心为其物体的对称中心;第二种是十字交叉的植物效果;第三种则是到Unity3D编辑器中通过地形编辑器系统添加
基本设置
5. Fbx导出插件下载地址:
http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=10775855
6. 将Max文件中用到的图片都拷贝到Textures目录下,如
7. 再打开Max文件,导出为FBX文件,使用默认设置,FBX文件也放置在和Max文件相同的目录下,如
导出的时候,可以将模型简单的分类,如地面、植被、楼房等,也可以将模型分为几个区域,如小区1,小区2,学校等等分开导出
8.将包含Max文件、Fbx文件和Textures文件夹的文件夹拷贝到Unity3D项目的Assets目录下如下图中红圈
在下一次用Unity3D编辑器开启本项目的时候,编辑器将自动导入/更新该文件夹中的信息,并生成Materials文件夹,如
9. 启动Unity3D编辑器
10. 选择刚才拷贝进来的文件中的Fbx文件,如
修改其中的Meshes下的Scale Factor和Generate Colliders,如
点击其他Fbx文件或者单击其他区域将弹出如下的对话框
点击Apply即可,类似的方式设置其他Fbx文件
注意,其中植物/植被类的Fbx文件不需要设置Generate Colliders项
11. 将Fbx文件直接拖放到Hierarchy区域,如
12. 点击Hierarchy区域中的对象,同时将鼠标移动三维显示区域,同时点击键f,则该对象自动适配显示到三维区域中心,如
13. 将全部fbx添加完成后,提高场景亮度如下
单击Ambient Light,如下
调整为
即可设置完成
14. 设置第一人称浏览
删除场景中Main Camera
将Project区域的Standard Assets下的Prefabs下的First Person Controller拖到Hierarchy区域中
点选First Person Controller,调整First Person Controller的位置到场景中合适的位置,并设置其高度为1.37到2.1左右
设置First Person Controller的高度在场景中地面之上
15. 点击运行,即可测试
修改视角控制键为右键
1. 打开Project区域中的StandardAssets下的CameraScripts下的MouseLook脚本,在
在 Quaternion originalRotation;
void Update ()
{
if (axes == RotationAxes.MouseXAndY)
{
// Read the mouse input axis
中添加一行代码修改为
Quaternion originalRotation;
void Update ()
{
if(Input.GetAxis ("Fire2")==0) return;
if (axes == RotationAxes.MouseXAndY)
{
// Read the mouse input axis
如何取消浏览窗口上的右键菜单
只要设置Unity对象的参数即可禁止右键菜单的显示,如下:
植物效果设置
17. 对于单面片的植物效果,需要设定其材质为Transparent/VertexLit类型,并为其添加公告板脚本
设定前
设置材质类型为Transparent/VertexLit类型,如下
给单面片植物添加公告板脚本的方法是先选择该植物,然后点击菜单component下的scripts下的camera Facing Billboard即可,如下
设置材质类型和添加公告板脚本后,如下
如果没有该脚本组件,可以打开脚本编辑器,拷贝如下代码到脚本中,保存到Assets\\Scripts下,命名为CameraFacingBillboard.cs即可
using UnityEngine;
using System.Collections;
public class CameraFacingBillboard : MonoBehaviour
{
public Camera cameraToLookAt;
void Start()
{
cameraToLookAt = Camera.main;
}
void Update()
{
Vector3 v = cameraToLookAt.transform.position - transform.position;
v.x = v.z = 0.0f;
transform.LookAt(cameraToLookAt.transform.position - v);
}
}
18. 对于十字交叉的植物,需要将其材质设定为Nature/Vegetation Two Pass unlit类型
设置前的效果
设置后的效果
水面效果的设置
19. 创建一个网格面片
20. 给该水面面片设置水材质和水脚本,如
即可
烘培光影贴图的处理
21. Unity3D光影烘培的要求
U3D的光影贴图使用的是3Dmax中的标准材质的自发光贴图通道来存储光影贴图相关参数,如
22. 给每个物体都附上贴图,如果是纯色物体,也付给纯色贴图
23. 打光后,选择要烘培的物体
设置输出路径
添加烘培输出的贴图类型
