文系忘備録

どこにでもいる文系大学生の忘備録です

MENU

【Unity】マインクラフトのブロックを設置したり破壊する機能を再現してみる【C#】

こんにちはdntfです。

今回は暇だったのでマインクラフトのブロック操作のようなものをUnityで作ってみようと思います。

※プログラミング初心者なので参考程度に見てください。

 

少し前にマップのランダム生成を実装したのでついでに作っていきます。

dntf.hatenablog.com

 

作り方

今回はRayCasterを使ってみようと思います。

ブロックを破壊する機能はDestroy関数を使えば作れるとして、おそらく問題になるのは設置の方だと思います。

そこで色々調べた結果、

rayCast.hit.normal

でrayが当たった表面をVector3で取得できることがわかりました。

docs.unity3d.com

なので以下のようにすることでrayが当たった表面にブロックを設置できます。

Vector3 pos_obj = obj.transform.localPosition + hit.normal; Instantiate(block,pos_obj,Quaternion.identity);

 

サンプルコード

Raycasterを試す

 

最後に

既に存在するゲームを模倣するのって結構勉強になりますね。

 

おすすめの記事

イクラっぽい地形を再現してみた↓

 

dntf.hatenablog.com