unity4.3.4firedrillonline项目首次整合问题总结
零。资源导入后把所有资源模型拖到场景中去,并reset Transform,使场景展现原有样子。
一。资源导入之后发现项目场景是黑的,添加灯光之后场景中大部分仍然是黑的(并没有光照的效果)
可能原因:场景模型使用了skyshop插件
1,添加GameObject-> CreatOther下面的Sky和Sky Manage
2,将Sky中的sky脚本下的HDR选为要使用的天空盒,除了HDR选项其他取消勾选(因为要使用unity自带的天空盒)
3,使用unity默认天空盒 Edit->RenderSetting在sky Material选择材质
ctrl+shift+c查看是否有错误,有些脚本错误也会导致场景是黑的...还导致了无法导出项目。
二。导入之后树木等材质/贴图丢失
可能原因:资源导入时材质/贴图丢失或者损坏,找到材质/贴图文件重新导入(替换)
三。视角调整,灯光添加
该项目中,游戏运行之后主相机自动寻找Target游戏对象,所以适当调整Target的位置以及相机的角度。
需要添加两个平行光,调整颜色,强度,阴影,层级
四。场景初步检查
查看场景中是否有常规错误,比如树长在马路上。
五。自动寻路与场景烘焙
注意事项:
1,由于unity5.6之前版本点击烘培(Bake)后会把选中的部分全部重新烘焙一边,比较费时间,所以把所有该烘培的根据需要全部勾选完成之后在进行烘培(之后有问题再修改)。不需要烘焙的地方不要烘焙。
2,烘培时在需要烘培的对象的inspector右上角的Static勾选为Navigation Static(或者Window->Navigation打开Navigation面板勾选Navigation Static,效果是一样的),不过反正要打开Navigation 面板就用后者吧..OffMeshLink Generatic选项不要勾选(这个是控制不连续寻路的,比如说两个烘培过的plane中间有一段没有烘培过的距离然后在jump distance设置距离后就可以跳过去。因为场景不是一整块地形,所以这个最好不要勾选,勾选后可能会导致一些部分烘培时不能很好地连接上)
3,烘焙参数与层级:烘焙参数用默认就可以,Radius:0.3,Height:0.5,Layer默认有Default层(室内烘焙为这一层),Not Walkable层,Jump层
根据需要添加烘焙层,该项目草地以及建筑外平台为ren层,行车的地方为shiwai层(烘焙结束后可以看到不同的层烘焙颜色
是不一样的,Default层时浅蓝色)。
4,脚本控制可寻路层级:Default层2^0,Not Walkable为2^1,Jump为2^2,以此类推。根据这个用脚本来控制角色是否可以在某层移动。现假设
有四层,则有1+2+4+8=15,若要求角色不可以在Default层走,则将数值设为15-2^0=14。当然这个数值是在角色的NavMeshAgent
组件下,如 this.GetComponent<NavMeshAgent>().walkableMask =14;MaskWalkable即为设置的角色可寻路层级。
注意:******烘焙完成后要将烘焙完的游戏对象Inspector面板右上角的Layer设为相应的寻路层级******
Tip:假如发现有些地方烘焙没有连接上(确定场景模型没有太大问题,比如墙体跟地面做成一个整体)可是在相应位置创建Plane或者Cube将
其连接,如果为不同层级连接处还要设置Plane/Cube的层级。之后将这些Plane/Cube设为不可见并放到同一个空对象下统一管理。
能走的地方烘焙,不能走的不要烘,比如说马路牙子,比如说电梯扶手。
烘焙完成后不能自动寻路问题总结:
(1)烘焙场景上添加了collider,可以触发射线碰撞检测。
(2)该烘焙过的场景的Layer在寻路层级上
(3)该游戏对象是否可以在该场景上所设置的层级上移动
六。添加安全出口UI
在该项目里这个只要挂一个脚本,(也就是动态添加一个组件)挂在出口模型的父对象上。脚本如下:
public class AddExitUI : MonoBehaviour
{
public GameObject SafeInOutButton;
private GameObject Exitfather;
void Awake()
{
Exitfather = this.transform.gameObject;
foreach ( Transform child in Exitfather.transform)
{
if (child.gameObject.GetComponent<UpOrDownWindPortSet>())
{
child.gameObject.AddComponent<UpOrDownWindPortSet>();
}
child.gameObject.AddComponent<UpOrDownWindPortSet>().safeInOutPort_UI = SafeInOutButton; }
}
}
七。楼层控制
该版本没有考虑多栋建筑楼层分别控制。
1,基本控制:该项目里楼层控制是在Loucengmessage脚本里实现的,只需要适当修改下楼层数以及UI显示的楼层信息就可以。
2,楼号控制:
(1)导入楼号模型,删掉多余,调下位置
(2)修改名称,注意大小写,与代码匹配
(3)添加Collider,否则无法触发点击事件
(4)依次添加loucengmessage脚本
八。Clone游戏对象
不能clone游戏对象的可能原因与不能寻路类似
(1)clone地点(鼠标点击地点)是否有collider接受射线碰撞
(2)脚本中使用的Tag决定是否可以克隆,所以要为场景中的游戏物体设置相应的Tag
九。smoke粒子添加
首先在AllScenes下添加一个smoke空对象(这个也要与脚本匹配大小写),然后根据层数创建子对象,然后根据每层需要创建粒子系统
这里注意一下粒子系统离地面高度,用shape控制粒子系统发射形状(预设的box形状就可以),q、w、e、r控制transform,Max Particles控制最大发射数量,Emission
控制发射频率,Start Speed控制粒子移动速度。
十。smoke控制
首先根据相应建筑更改loucengmessage中的楼层层数,然后要注意的是GameObject.Find(string name)方法时找不到未启用物体的,所以整合中跳出了if判断进而没有实现相应效果。
如果要找到隐藏物体,需要先用GameObject.Find(string name)找到其非隐藏的父节点然后通过transform.find(string name)找到该游戏物体
本项目中需要修改的脚本为loucengmessage,GameObjectSyncReceive
十一。目标位置调整
营救成功需要有一个mubiao空对象,用来记录成功后被营救人员以及玩家的位置,设置position.y比地面低2.8
十二。小地图shader问题
重新导入丢失的shader文件,在UIroot中选中小地图的的材质,然后将shader文件拖入材质中丢失的地方。调整target位置,使主建筑位于小地图中间位置。调整target时,注意target下的upanddowncamera脚本的Ymin小于其y值,否则不能上下移动摄像机。
unity4.3.4firedrillonline项目首次整合问题总结的更多相关文章
- Axis2在Web项目中整合Spring
一.说明: 上一篇说了Axis2与Web项目的整合(详情 :Axis2与Web项目整合)过程,如果说在Web项目中使用了Spring框架,那么又改如何进行Axis2相关的配置操作呢? 二.Axis2 ...
- django之创建第11个项目-页面整合
目的:将如下众多html页面整合到一个index.html页面中. 百度云盘:django之创建第11个项目-页面整合 用下面的方式实现: <!DOCTYPE html> <head ...
- 项目中整合第三方插件与SpringMVC数据格式化关于ip地址
一.Bootstrap 响应式按钮 <div calss="col-sm-2"> <button class="btn btn-default btn- ...
- 简述泛型、用Maven创建Web项目以及在Web项目上整合SpringMVC
表设计 Timestamp列是否取消"根据当前时间戳自动更新" 是否null及默认值选择合理不合理 外键命名规范及更新和删除时的动作是否合理 泛型 类型参数 --允许在外部指定 ...
- spring web项目中整合netty, akka
spring web项目中整合netty, akka 本身的web项目仍然使用tomcat/jetty8080端口, 在org.springframework.beans.factory.Initia ...
- 从零开始的SpringBoot项目 ( 六 ) 整合 MybatisPlus 实现代码自动生成
1.添加依赖 <!-- MySQL数据库 --> <dependency> <groupId>mysql</groupId> <artifactI ...
- 【教程】IDEA创建Maven项目并整合Tomcat发布,问题解决大全
一篇入门教程 一.创建项目并运行 参考这个视频,能顺利运行 helloworld ,本人用的 IDEA2020.2.3 .jdk11 .Tomcat9 .Maven3.6 bilibili-IDEA( ...
- Mybatis、maven项目中整合log4j (17)
Mybatis.maven项目总整合log4j java 中Mybatis.maven项目总整合log4j 1.pom增加log4j包引用 2.添加 log4j.properties文件 # java ...
- activiti和SSH项目做整合
最近因公司的业务需求,需要使用工作流来做我们业务中的流程审批工作,so 就安排我做了这个工作,发现整合的时候有一些问题,及时的记录下来分享给大家. 介绍: 一.如果你的web项目只是单纯的web项目那 ...
随机推荐
- phpstudy apache 服务无法启动
1.找到apache路径 3.打开cmd进入bin文件夹 4.输入 httpd.exe 看报的什么错误即可解决 我的这边是httpd.config 里面配置了个项目文件夹路径,这个文件夹被我删了,导 ...
- Python3基础 二、八、十、十六进制数的定义
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- excel打开csv 出现乱码
现在做舆情分析的相关项目,在数据处理的时候,发现了一个问题.将数据写入到csv文件,用excel打开(默认)就会出现乱码,如果将数据写入到.xlsx文件就不会出现乱码,因为csv是通用格式,所以我猜想 ...
- 基因型数据正负链怎么翻转(snp flip)
在合并数据过程当中,经常会发现不同来源的数据正负链不是统一的,这是一件很头疼的事. 正负链没有统一的情况下直接合并在一起会产生什么后果呢. 举个最简单的例子,假如我们从小明和小红分别拿到了一批基因型数 ...
- 如何杀死处于进程状态D的进程
D状态的就是 uninterruptible sleep ,此时进程不能被信号唤醒,GDB等调试工具也不能对它调试,因为GDB也是用到了信号,也杀不死它 D状态的形成 如何分析D状态 cat /pro ...
- 【视频开发】【CUDA开发】ffmpeg nvenc编码
花时间研究了一些ffmpeg的nvenc,本来想我已经有了cuvid,然后又搞出来了nvenc,应该可以做个全套的英伟达的转码了,没想到ffmpeg官网下载的动态库没有cuvid,windows上编译 ...
- SpringBoot系列教程web篇之Thymeleaf环境搭建
上一篇博文介绍了如何使用Freemaker引擎搭建web项目,这一篇我们则看一下另外一个常见的页面渲染引擎Thymeleaf如何搭建一个web项目 推荐结合Freemaker博文一起查看,效果更佳 1 ...
- php_MVC实现步骤二
2.match_split 显示逻辑相分离 将功能强制分成两个部分,显示html文件,和逻辑PHP文件: 要求浏览器请求负责功能的PHP逻辑文件: 该PHP逻辑文件,对需要的显示内容进行载入. 逻辑P ...
- Django实现博客项目
一.项目概述 项目运行环境 Python3.6+ Django 1.11 MySQL 5.7 其他插件(图片处理.分页.验证码....) 项目详细功能介绍 前台功能 项目首页展示 轮播图 博客推荐 最 ...
- js玩命加载……
在请求数据加载的过程中,经常需要显示请求等待,写了一个简单的请求等待—- html代码如下 <!--页面载入显示--> <div id="dataLoad" st ...