《Unity3D游戏开发之使用UniSky呼风唤雨.docx》由会员分享,可在线阅读,更多相关《Unity3D游戏开发之使用UniSky呼风唤雨.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Unity3D游戏开发之使用UniSky呼风唤雨我们使用的是UniSky插件,大家可以在Assets Store中找到这个插件。首先,我们引入资源包,注意不要带有中文路径,否则会报错。此时,在项目中会增加一个UniSky的文件夹,如图所示: 接下来,找到UniSky/Resources/下的UniSkyAPI,这是一个预设文件,我们将其拖入到我们的场景中来,将其和主摄像机关联,如图所示: 接下来创建一个空的GameObject对象,用来绑定脚本,我们一起来看下面的脚本,该脚本可以在UniSkyExample ProjectAssets路径下找到:1. using UnityEngine;2.
2、using System.Collections;3. 4. public class UniSkyScript : MonoBehaviour 5. 6. /定义UniSkyAPI实例7. private UniSkyAPI uniSky;8. 9. void Awake() 10. 11. /获取实例12. uniSky = GameObject.Find(UniSkyAPI).GetComponent(UniSkyAPI) as UniSkyAPI;13. 14. /初始化UniSky15. uniSky.InstantiateUniSky();16. 17. /设置初始化值18. un
3、iSky.SetTime(12.0f);/设置一天的时间(0-24小时循环)19. uniSky.SetAmbientLighting(new Color(0.1f, 0.1f, 0.1f, 0.1f);/设置周围环境光照颜色20. uniSky.SetStormCenter(new Vector3(0,0,0);/设置风暴中心21. uniSky.SetSunShadows(LightShadows.Soft);/设置太阳阴影22. 23. /常用的方法24. uniSky.LerpCloudCover(0.5f, 5000.0f);/设置云层级别(从-5到5)25. uniSky.Lerp
4、PrecipitationLevel(0.6f, 5000.0f);/设置云层中沉淀物的级别(从0到2)26. uniSky.LerpStormCloudCover(-1.0f, 10000.0f);/设置暴风雨覆盖级别(-3.5到-1.0)27. uniSky.LerpRainLevel(500, 0.2f, 10000.0f);/设置雨的级别28. uniSky.LerpStormLevel(300, 0.4f, 20000.0f);/设置风暴级别29. uniSky.LerpSunIntensity(0.2f, 10000.0f);/设置太阳高度30. uniSky.LerpFogLev
5、el(0.02f, 20000.0f);/设置云雾级别31. uniSky.LerpAmbientLighting(new Color(0.0f, 0.0f, 0.0f, 0.0f), 5000);/设置周围环境光照颜色32. uniSky.ClearDropletBuffer();/清理雾滴缓存33. uniSky.LerpDropletLevel(10, 20000.0f);/设置雾滴级别34. 35. 36. 37. void Update() 38. 39. 40. 脚本中的方法都定义在UniSkyAPI类文件中,大家可以自行查阅了解,现在我们将这个脚本和刚才创建的空的游戏体绑定,运行
6、游戏,文章出处:狗刨学习网。效果如下(ps:做成特效动画文件特别大): 最后给出UniSkyAPI中方法注释:1. /一天的时间(0到24小时循环)2. SetTime(float time);3. LerpTime(float time, float milliseconds);4. GetTime();5. 6. 7. 8. /返回太阳的颜色9. GetSunColor();10. /启用或禁用太阳和月亮的阴影。类型: LightShadows.None 、LightShadows.Hard和 LightShadows.Soft11. public void SetSunShadows(L
7、ightShadows sunShadows)12. public void SetMoonShadows(LightShadows moonShadows)13. 14. 15. /设置暴风雨云层中心的坐标16. SetStormCenter(Vector3 stormCenter);17. 18. 19. /散射半径,他影响着天空的颜色(默认是45000,通常情况下是一个真实的天空)20. SetScatteringRadius(float scatteringRadius);21. LerpScatteringRadius(float scatteringRadius, float mi
8、lliseconds);22. 23. 24. /主大气层的覆盖是(-5到5)25. void SetCloudCover(float cloudCover);26. LerpCloudCover(float cloudCover, float milliseconds);27. 28. 29. /黑暗的云层,不是暴风雨的大气层。(2-0,越低,云层颜色越深)30. SetPrecipitationLevel(float precipitationLevel);31. LerpPrecipitationLevel(float precipitationLevel, float millisec
9、onds);32. 33. 34. /暴风雨的覆盖层级是(建议是-3.5到-1.0)35. SetStormCloudCover(float cloudCover);36. LerpStormCloudCover(float cloudCover, float milliseconds);37. 38. 39. /雨的数量。没有大暴雨的,但是都是小雨。(任何地方都是从0-1000)40. SetRainLevel(float rainLevel, float sfxLevel);41. LerpRainLevel(float rainLevel, float sfxLevel, float m
10、illiseconds);42. 43. /特大暴雨。一片都有雨。(任何地方都是从0-200)44. SetStormLevel(float stormLevel, float sfxLevel);45. LerpStormLevel(float stormLevel, float sfxLevel, float milliseconds);46. 47. /太阳的亮度或浓度。由于黑暗中阴天或暴风雨天(0到0.5)淡入淡出48. SetSunIntensity(float intensity);49. LerpSunIntensity(float intensity, float millis
11、econds);50. 51. /设置内置雾(0到0.03)52. SetFogLevel(float fogLevel);53. LerpFogLevel(float fogLevel, float milliseconds);54. 55. 56. /设置屏幕图像上滴落的速率(0到5)57. SetDropletLevel(float dropletLevel);58. LerpDropletLevel(float dropletLevel, float milliseconds);59. 60. 61. 62. /设置云的方向,加速度和演化的速度。X=x方向和加速度,Y=y方向和加速度,
12、Z=演化速度(0到1)63. SetCloudSpeedDirection(Vector3 speedDirection);64. LerpCloudSpeedDirection(Vector3 speedDirection, float milliseconds);65. /光晕差异。设置云边缘的照明强度(0到10)。提示:设置为0左右,会有一个很好的卷云效果。66. SetGlowVariance(float glowVariance);67. LerpGlowVariance(float glowVariance, float milliseconds);68. 69. /设置云褪色到大
13、气中的距离(0到20)70. SetViewDistance(float viewDistance);71. LerpViewDistance(float viewDistance, float milliseconds);72. 73. /调节默认颜色。建议RGB的默认值(1.5,1.5,1.5)。如果你想要粉红色或绿色的云:D74. SetColorVariance(Vector3 colorVariance);75. LerpColorVariance(Vector3 colorVariance, milliseconds);76. 77. /如果你想时间自动循环,这个是时间流逝的速度。
14、(0到0.1)78. SetSpeedOfTime(float speedOfTime);79. 80. 81. 82. /改变光散射到云中,只影响云的颜色。最好是保持他的默认值,40.(-20到100)83. SetRayleighLevel(float rayleighLevel);84. /如果启用该选项,一天中时间的播放器与系统时钟同步。85. SetUseSystemTime(bool enabled);86. 87. 88. /改变环境光的颜色。我建议在一天的时间内进行插值或混浊。89. SetAmbientLighting(Color ambientLevel);90. LerpAmbientLighting(Color ambientLevel, float milliseconds);91. 92. 93. /设置月亮的大小94. SetMoonSize(float moonSize);95. 96. /清除雾滴缓存97. ClearDropletBuffer();98. 99. /设置打雷闪电的频率。越高越频繁(0到100)。100. SetLightningFrequency(float101. frequency);102.