記述コードの解説
このページでは下記コードの解説していきます。
62行目のBoardSetup関数について
まずBoardと言うobjectを生成し、boardHolderに設定する
これはBoardをフィールドとみなして、
その配下にアイテムや壁を生成することで整理するために行っている。
67~82行目はループを使いフィールドを生成。
下記の図を見てください
フィールドは10×10で生成されており、
一番外側は破壊不可な外壁を設置する場所。
8×8はplayerが移動可能な範囲で、
なおかつ床を設置する場所。
Playerが現在立っている位置を(0,0)としているため、
外壁が配置されるのはx,yのどちらかまたは両方に-1or8の位置がある時になる。
なのでループの開始を-1から始め10進んだ数値の8までループが回るようにし、
位置に-1or8が含まれていたら外壁、それ以外は床を配置するようにしている。
90行目のInitialiseList関数について
上記画像の6×6の場所をリストに数値としてgridPositonsに保持する
このgridPositonsに保持されている数値たちは、objectが無い状態なので、
アイテムを配置する際にこのリストを使う。
108行目RandomPosition関数について
randomIndexにgridPositonsに保持されている位置の要素数から
ランダムに数値を選び設定する。
randomPositionにgridPositonsの
randomIndexに保持されている場所を設定する。
一度randomPositionに設定された数値は削除して、
アイテムが二重で置かれることがないようにしている。
123行目LayoutObjectAtRandom関数について
アイテムごとに決められた、
最小最大値からランダムでアイテムを設置するべき数値を決める。
決められた数値objectCount分ループで回して、
randomPositionに設置していく。
unityでローグライクゲーム作成まとめ
今回はPart3と言うことで
Mapのランダム生成を行うために、
C#コードの記述や
その解説をメインに行っていきました。
少し複雑で、
わかりにくいかもしれませんが
何度か読み返せば
自分で理解して、
今後別のゲームでも
Mapをランダム生成する時に
役立つことになると思います!
次回はUnit用の抽象クラス作成と
Animationの設定を行っていきます
皆さん、こんにちは! part4では Unit移動用の抽象クラス UnitAnimationの実装を行っていきます。 ちなみにチュートリアル動画[…]
p.s
これからunityを使って
ゲームを作ってみたい人、
現在使い始めたばかりの人は
ぜひLINE@に参加してみてください!
私がunityを始めたばかりの頃、
- どうやって勉強をすればいいのか
- オススメの教材は
- 何をすればいいのか
迷うことが多く、
無駄な時間を多く過ごしてしまいました。
さらに諦めそうにもなったことも・・。
そしてこれらは
unityを多少なりともやってきている人に
聞ければ解決できる問題です。
そこで微力ですが、
初心者のみなさんを
サポートできればと思いLINE@を始めました!
主に
- 進捗報告&質問の受付
(返信できる回数に限りがあるので、全てに返信はできないかもしれませんが) - オススメ教材のクーポン情報を配布
などでサポートしています
興味がある方は気軽にこちらを覗いてみてください!
LINE@でお待ちしております。
- 1
- 2