资源描述:
《Unity3D游戏开发之使用UniSky呼风唤雨》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Unity3D游戏开发之使用UniSky呼风唤雨我们使用的是UniSky插件,大家可以在AssetsStore中找到这个插件。首先,我们引入资源包,注意不要带有中文路径,否则会报错。此时,在项目中会增加一个UniSky的文件夹,如图所示: 接下来,找到UniSky/Resources/下的UniSkyAPI,这是一个预设文件,我们将其拖入到我们的场景中来,将其和主摄像机关联,如图所示: 接下来创建一个空的GameObject对象,用来绑定脚本,我们一起来看下面的脚本,该脚本可以在UniSkyExampleProjectAssets路径
2、下找到:1.usingUnityEngine; 2.usingSystem.Collections; 3. 4.publicclassUniSkyScript:MonoBehaviour{ 5. 6. //定义UniSkyAPI实例 7. privateUniSkyAPIuniSky; 8. 9. voidAwake(){ 10. 11. //获取实例 12. uniSky=GameObject.Find("UniSkyAPI").GetComponent("UniSkyAPI")a
3、sUniSkyAPI; 13. 14. //初始化UniSky 15. uniSky.InstantiateUniSky(); 1. 2. //设置初始化值 3. uniSky.SetTime(12.0f);//设置一天的时间(0-24小时循环) 4. uniSky.SetAmbientLighting(newColor(0.1f,0.1f,0.1f,0.1f));//设置周围环境光照颜色 5. uniSky.SetStormCenter(newVec
4、tor3(0,0,0));//设置风暴中心 6. uniSky.SetSunShadows(LightShadows.Soft);//设置太阳阴影 7. 8. //常用的方法 9. uniSky.LerpCloudCover(0.5f,5000.0f);//设置云层级别(从-5到5) 10. uniSky.LerpPrecipitationLevel(0.6f,5000.0f);//设置云层中沉淀物的级别(从0到2) 11. uniSky.LerpStormCloudCov
5、er(-1.0f,10000.0f);//设置暴风雨覆盖级别(-3.5到-1.0) 12. uniSky.LerpRainLevel(500,0.2f,10000.0f);//设置雨的级别 13. uniSky.LerpStormLevel(300,0.4f,20000.0f);//设置风暴级别 14. uniSky.LerpSunIntensity(0.2f,10000.0f);//设置太阳高度 15. uniSky.LerpFogLevel(0.02f,20000.0f);//设置云雾级别
6、 16. uniSky.LerpAmbientLighting(newColor(0.0f,0.0f,0.0f,0.0f),5000);//设置周围环境光照颜色 17. uniSky.ClearDropletBuffer();//清理雾滴缓存 18. uniSky.LerpDropletLevel(10,20000.0f);//设置雾滴级别 19. 20. } 21. 22. voidUpdate(){ 23. 24. } 25.} 脚本中的方法都定义在UniSkyAPI类文
7、件中,大家可以自行查阅了解,现在我们将这个脚本和刚才创建的空的游戏体绑定,运行游戏,文章出处:狗刨学习网。效果如下(ps:做成特效动画文件特别大): 最后给出UniSkyAPI中方法注释:1.//一天的时间(0到24小时循环) 2.SetTime(floattime); 3.LerpTime(floattime,floatmilliseconds); 4.GetTime(); 5. 6. 7. 8.//返回太阳的颜色 9.GetSunColor(); 10.//启用或禁用太阳和月亮的阴影。类型:"LightShadows.N
8、one"、"LightShadows.Hard"和"LightShadows.Soft" 11.publicvoidSetSunShadows(LightShad