Unity3D创建简单漫游 代码
1. 建模中使用的图片、文件、文件夹等以及模型中物体、材质等的名称都不能使用中文或者特殊符号,可以使用英文字母、数字、下划线等
2. 调整Max的单位为米
3. 烘培光影的设置
4. 模型的中的植物效果,第一种是单面片植物,需要设置其轴心为其物体的对称中心;第二种是十字交叉的植物效果;第三种则是到Unity3D编辑器中通过地形编辑器系统添加
基本设置
5. Fbx导出插件下载地址:
https://www.360docs.net/doc/f6523309.html,/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. 点击运行,即可测试
修改视角控制键为右键
16. 打开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. 给该水面面片设置水材质和水脚本,如