类Minecraft方块游戏unity开发笔记5-天气系统(昼夜交替、天气)

昼夜交替

实现白天、黑夜的交替,太阳、月亮的移动,主要通过skybox的旋转,skybox的交替。或者采用unistorm等插件实现。

天气系统(雨雪)

由于需要遮挡关系(树下淋不到雨),所以采用一种动态面片生成算法。
主要根据玩家所处的block,设定一个范围(xz)和高度(16),范围内的block根据heightmap判断最顶面开始玩上生成一个面片。
每个面片是一个贴图uv动画,方向朝向玩家,如图所示。
这里写图片描述
这里写图片描述

  • uv动画
    每个block一个面片,一个单独uv动画,玩家移动到不同block,需重新计算所有面片。
    每个block需单独记录其当前的uv起点,以便在玩家移动(包括上下)时,保持每个block的uv动画和之前的一致(没有突变)。此步骤注意根据高度计算uv值。

  • 面片朝向
    采用固定值朝向,加快刷新速度。根据俯视图可以开出每个面片的朝向,只有两种:一种中间垂直,一种对角线。采用这样的简单的方式,可以快速计算面片顶点座标。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章