類Minecraft方塊遊戲unity開發筆記5-天氣系統(晝夜交替、天氣)

晝夜交替

實現白天、黑夜的交替,太陽、月亮的移動,主要通過skybox的旋轉,skybox的交替。或者採用unistorm等插件實現。

天氣系統(雨雪)

由於需要遮擋關係(樹下淋不到雨),所以採用一種動態面片生成算法。
主要根據玩家所處的block,設定一個範圍(xz)和高度(16),範圍內的block根據heightmap判斷最頂面開始玩上生成一個面片。
每個面片是一個貼圖uv動畫,方向朝向玩家,如圖所示。
這裏寫圖片描述
這裏寫圖片描述

  • uv動畫
    每個block一個面片,一個單獨uv動畫,玩家移動到不同block,需重新計算所有面片。
    每個block需單獨記錄其當前的uv起點,以便在玩家移動(包括上下)時,保持每個block的uv動畫和之前的一致(沒有突變)。此步驟注意根據高度計算uv值。

  • 面片朝向
    採用固定值朝向,加快刷新速度。根據俯視圖可以開出每個面片的朝向,只有兩種:一種中間垂直,一種對角線。採用這樣的簡單的方式,可以快速計算面片頂點座標。

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