Unity3D游戏开发之使用UniSky呼风唤雨.docx
上传人:qw****27 上传时间:2024-09-11 格式:DOCX 页数:7 大小:1.8MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Unity3D游戏开发之使用UniSky呼风唤雨.docx

Unity3D游戏开发之使用UniSky呼风唤雨.docx

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Unity3D游戏开发之使用UniSky呼风唤雨我们使用的是UniSky插件,大家可以在AssetsStore中找到这个插件。首先,我们引入资源包,注意不要带有中文路径,否则会报错。此时,在项目中会增加一个UniSky的文件夹,如图所示:接下来,找到UniSky/Resources/下的UniSkyAPI,这是一个预设文件,我们将其拖入到我们的场景中来,将其和主摄像机关联,如图所示:接下来创建一个空的GameObject对象,用来绑定脚本,我们一起来看下面的脚本,该脚本可以在UniSky\ExampleProject\Assets路径下找到:usingUnityEngine;usingSystem.Collections;publicclassUniSkyScript:MonoBehaviour{//定义UniSkyAPI实例privateUniSkyAPIuniSky;voidAwake(){//获取实例uniSky=GameObject.Find("UniSkyAPI").GetComponent("UniSkyAPI")asUniSkyAPI;//初始化UniSkyuniSky.InstantiateUniSky();//设置初始化值uniSky.SetTime(12.0f);//设置一天的时间(0-24小时循环)uniSky.SetAmbientLighting(newColor(0.1f,0.1f,0.1f,0.1f));//设置周围环境光照颜色uniSky.SetStormCenter(newVector3(0,0,0));//设置风暴中心uniSky.SetSunShadows(LightShadows.Soft);//设置太阳阴影//常用的方法uniSky.LerpCloudCover(0.5f,5000.0f);//设置云层级别(从-5到5)uniSky.LerpPrecipitationLevel(0.6f,5000.0f);//设置云层中沉淀物的级别(从0到2)uniSky.LerpStormCloudCover(-1.0f,10000.0f);//设置暴风雨覆盖级别(-3.5到-1.0)uniSky.LerpRainLevel(500,0.2f,10000.0f);//设置雨的级别uniSky.LerpStormLevel(300,0.4f,20000.0f);//设置风暴级别uniSky.LerpSunIntensity(0.2f,10000.0f);//设置太阳高度uniSky.LerpFogLevel(0.02f,20000.0f);//设置云雾级别uniSky.LerpAmbientLighting(newColor(0.0f,0.0f,0.0f,0.0f),5000);//设置周围环境光照颜色uniSky.ClearDropletBuffer();//清理雾滴缓存uniSky.LerpDropletLevel(10,20000.0f);//设置雾滴级别}voidUpdate(){}}脚本中的方法都定义在UniSkyAPI类文件中,大家可以自行查阅了解,现在我们将这个脚本和刚才创建的空的游戏体绑定,运行游戏,文章出处:狗刨学习网。效果如下(ps:做成特效动画文件特别大):最后给出UniSkyAPI中方法注释://一天的时间(0到24小时循环)SetTime(floattime);LerpTime(floattime,floatmilliseconds);GetTime();//返回太阳的颜色GetSunColor();//启用或禁用太阳和月亮的阴影。类型:"LightShadows.None"、"LightShadows.Hard"和"LightShadows.Soft"publicvoidSetSunShadows(LightShadowssunShadows)publicvoidSetMoonShadows(LightShadowsmoonShadows)//设置暴风雨云层中心的坐标SetStormCenter(Vector3stormCenter);//散射半径,他影响着天空的颜色(默认是45000,通常情况下是一个真实的天空)SetScatteringRadius(floatscatteringRadius);LerpScatteringRadius(floatscatteringRadius,floatmilliseconds);//主大气层的覆盖是(-5到5)voidSetCloudCover(floatcloudCo