【Unity】マインクラフトのブロックを設置したり破壊する機能を再現してみる【C#】
こんにちはdntfです。
今回は暇だったのでマインクラフトのブロック操作のようなものをUnityで作ってみようと思います。
※プログラミング初心者なので参考程度に見てください。
少し前にマップのランダム生成を実装したのでついでに作っていきます。
作り方
今回はRayCasterを使ってみようと思います。
ブロックを破壊する機能はDestroy関数を使えば作れるとして、おそらく問題になるのは設置の方だと思います。
そこで色々調べた結果、
rayCast.hit.normal
でrayが当たった表面をVector3で取得できることがわかりました。
なので以下のようにすることでrayが当たった表面にブロックを設置できます。
Vector3 pos_obj = obj.transform.localPosition + hit.normal; Instantiate(block,pos_obj,Quaternion.identity);
サンプルコード
最後に
既に存在するゲームを模倣するのって結構勉強になりますね。
おすすめの記事
マイクラっぽい地形を再現してみた↓