kamihi のブログ

作成したゲームの情報や作り方を掲載します

UnityでMinecraft風ゲームを作る その10「草を生やす」

今回は「草を生やす」です。


Googleドライブに保存しておきました。 そこからダウンロードしてみてください。

UnityでMinecraft風ゲームを作る - Google ドライブ

実行するにはレイヤーの設定を行ってください

「Clear」レイヤーの追加

f:id:zekutasiki:20190106135434p:plain

「Clear」レイヤーと「Ignore Raycast(player)」レイヤーの衝突をなくす

f:id:zekutasiki:20190106135450p:plain


f:id:zekutasiki:20190106135334p:plain
実行結果

草が生えてますね(・v・)


スクリプトの主な変更は以下の通りです

  • Chunk.cs 草のメッシュを表示できるよう追加
  • ChunkManager.cs CustomMesh、ClearMeshの追加
  • EnumData.cs 草を追加
  • PlayerControl.cs 変更なし
  • TargetControl.cs レイヤーで当たる当たらないの設定を追加

f:id:zekutasiki:20190106135705p:plain

草を生やすためにChunkの配下にCustomMesh(草の表示を行うゲームオブジェクト)、ClearMesh(草の当たり判定を行うゲームオブジェクト)を追加しました。


Chunk.cs

        //草の表示を行うリスト
        List<List<Vector3>> customVerticeList = new List<List<Vector3>>();
        List<List<int>> customFaceList = new List<List<int>>();
        List<List<Vector2>> customUvList = new List<List<Vector2>>();
        int customFaceCount;
        int customListCount;
        //草のあたり判定を行うリスト、表示はしないのでUVリストはない
        List<List<Vector3>> clearVerticeList = new List<List<Vector3>>();
        List<List<int>> clearFaceList = new List<List<int>>();
        int clearFaceCount;
        int clearListCount;

CustomMesh、ClearMeshを追加したので頂点情報などが追加になっています。

ブロックと同じよう、草のメッシュはプログラムでちまちま書いてます。

今回は以上になります。

次回は水です。