今日はプレイヤーを操作してブロックを押すというシステムを作ってみました!ウインク




一見、簡単そうに見えるけど案外作るのが難しい...。

 

UnityのRigidbody機能を使うと接触の判定ができるんだけど、衝突時に吹っ飛んだりしちゃうのがネック。

プレイヤーやブロックを1マス単位で動かしたい時には物理演算は組み込まず自作した方が良いと思ったキョロキョロ

 

普通に矢印キーを押すことでプレイヤーを上下左右に動かすことができるんだけど、

移動先のマスにブロックが存在している場合はそのブロックも移動させないといけない。

この時、2マス先に壁もしくは他のブロックがある場合は進むことができないようにシステムを組まなきゃいけないガーン

 

最初はこのシステムの作り方がなかなか思い浮かばなかったんだけど、

マス目が現在占有されているか、占有状態によって別の値を格納する配列を用意することで解決しました!

(移動可能状態なら0, 赤いブロックがある場合は1など)

 

基本のシステムは出来上がったので、あとは赤いブロックを所定の位置に運ぶっていう

パズルのようなゲームを作っていこうと考えてる!進捗をお楽しみにビックリマーク