unity3d水下模糊效果.docx
- 文档编号:24603576
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:11
- 大小:1.68MB
unity3d水下模糊效果.docx
《unity3d水下模糊效果.docx》由会员分享,可在线阅读,更多相关《unity3d水下模糊效果.docx(11页珍藏版)》请在冰豆网上搜索。
unity3d水下模糊效果
个教程大部分使用的是U3D内置的资源,使用到的水下模糊效果也仅仅是添加了DepthOfField特效,用于模拟水下效果,下面有两种触发方式的讲解.
一、判断摄像机在绝对世界的水平位置.
首先先看看效果
后面正式开始制作
1. 新建一个地型,挖一个这样的洞
2. 在资源包里添加一个水面,调整到合适的大小及位置。
3. 对主摄像机添加DepthOfField特效
这个时候Game面板应该已经有变化了,Inspector面板里也已经多了个DepthOfField脚本。
点前面的小勾可以打开或关闭脚本。
你可以试着编辑DepthOfField脚本里的参数,可以得出很有趣的效果。
更多摄相机效果请看Design3-ImageEffects。
4. 编写脚本判断摄像机是否在水下
JavaScript的代码:
varCamara_1:
GameObject;
functionStart(){
Camara_1=GameObject.Find("/FirstPersonController/MainCamera");
}
functionUpdate(){
if(transform.position.y<9.5)
Camara_1.GetComponent("DepthOfField").enabled=***e;
if(transform.position.y>9.5)
Camara_1.GetComponent("DepthOfField").enabled=false;
}
CSharpScript的代码:
usingUnityEngine;
usingSystem.Collections;
publicclassshuixia_1:
MonoBehaviour{
publicGameObjectCamara_1;
voidStart(){
Camara_1=GameObject.Find("/FirstPersonController/MainCamera");
}
voidUpdate(){
if(transform.position.y<9.5)
Camara_1.GetComponent
if(transform.position.y>9.5)
Camara_1.GetComponent
}
}
想了想还是不截图了,直接上代码,IF后面的9.5是水平面的高度,那个数值可以设定触发相机模糊的高度。
因为代码少,就不走注解了,如果有什么不明白的可以Q我。
二、设置水区域,判断相机是否在区域内
1.接上个小节,这个时候在原地型的基础上再绘制一座更高的山,山中间有个洞,洞里面再添加一个水面
2.把上节中shuixia_1的脚本关闭,
3.给两个水区域添加BOX,要刚好把水面和水下的区域覆盖掉,这时候要多运用各个视图,这里不详细讲,有问题可以Q我。
4.给新建的两个BOX添加Collider,并勾选IsTrigger,新建一个标签为shuixia,两个BOX选择标签为shuixia,之后将BOX设为不渲染
5.编写程序脚本,判断相机是否在BOX区域内
JavaScript的代码:
varCamara_1:
GameObject;
functionStart(){
Camara_1=GameObject.Find("/FirstPersonController/MainCamera");
}
functionOnTriggerStay(hit:
Collider){
if(hit.gameObject.tag=="shuixia")
Camara_1.GetComponent("BlurEffect").enabled=***e;
}
functionOnTriggerExit(hit:
Collider){
if(hit.gameObject.tag=="shuixia")
Camara_1.GetComponent("BlurEffect").enabled=false;
}
CSharpScript的代码:
usingUnityEngine;
usingSystem.Collections;
publicclassshuixia_2:
MonoBehaviour{
publicGameObjectCamara_1;
voidStart(){
Camara_1=GameObject.Find("/FirstPersonController/MainCamera");
}
voidOnTriggerStay(Colliderhit){
if(hit.gameObject.tag=="shuixia")
Camara_1.GetComponent
}
voidOnTriggerExit(Colliderhit){
if(hit.gameObject.tag=="shuixia")
Camara_1.GetComponent
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- unity3d 水下 模糊 效果