13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

釣りがしたかった・・・

Posted at

無性に釣りがしたくなったので作ろうかと思って・・・。
川のぬし釣りみたいなのがつくりたいな・・・。

##マップ作り
マップ作りはこちらのアセットを使用

スクリーンショット 2016-05-16 16.43.15.png

###パッケージをインポート
使い方のドキュメントはDocumentationフォルダに(英語だけど)
でものシーンも幾つかついているので見れば大体わかります。
スクリーンショット 2016-05-16 15.42.44.png

###早速マップ作成
とりあえず簡単に新規シーンを作成
RpgMapEditor->AutoTileMap
スクリーンショット 2016-05-16 16.28.29.png

ヒエラルキー上にオブジェクトができるのでインスペクタで設定します。
スクリーンショット 2016-05-16 16.28.46.png

TileSetはすでに入っているやつを使います(Samples/Scenes/AutoTileSet)
MapDataは新規でつくるのでCreate

するとインスペクタ上がこんな感じになります。
スクリーンショット 2016-05-16 16.30.13.png

##Playボタンでマップをぬりぬり
Playボタンを押してあとは好きなのを選んで塗っていくだけ。
レイヤーも好きにわけられるし、くぐったりするものも作成可能です。
範囲選択でのコピーもできるし、連続したところは勝手にくっつけた状態で配置してくれます。
ぬりぬりしたらPlayを止めればOK
スクリーンショット 2016-05-16 16.30.22.png

とりあえずこんな感じでいいや。
スクリーンショット 2016-05-16 16.31.48.png

##とりあえずキャラを配置する
RpgMapEditor->Characterを実行
スクリーンショット 2016-05-16 16.34.28.png

できたオブジェクトのインスペクタにキャラクターチップのSpriteをセットする。
キャラチップは「臼井の会」さんのものを使用しております。
これをセットするだけでもうセット完了!
スクリーンショット 2016-05-16 16.51.07.png

##キャラクターを動くように
十字キーで動くように先ほどのオブジェクトにPlayerController.csをアタッチ
これをアタッチするだけで十字キーでキャラが動きます。

##カメラがキャラを追従する上に
PlayerCamera.prefabをヒエラルキーに配置
インスペクタからFollowObjectBehaviorのtargetをキャラクターにセットすれば完了
スクリーンショット 2016-05-16 16.35.21.png

画面の端の処理してないから外にもでれちゃうけどあっという間にここまで完了。
当たり判定もついてるからここまで10分とかからずにできてしまうという!

これで下準備完了

##次は次は魚を表示しよう。。。
とおもったら飽きてしまいました

とりあえずやったところまで。
キャストして、魚の近くだと魚が逃げてくようにまでしました。

こちらScene画面。魚の動く目的地にgizmoを表示してわかりやすくしてます。
目的地に着いたら適当に移動させてます
地面には乗らないようにしてます。

作る上でよく使ったのが、world座標からtilemap上の座標を求めるとのと
tilemapからworld座標を求めること。

// ワールド座標からタイルの位置を取得
public static Vector2 GetWorldPosToTilePos(Vector3 pos)
{
	int tile_x = Mathf.RoundToInt(pos.x  * 100f / autoTileMap.Tileset.TileWidth);
	int tile_y = Mathf.RoundToInt(-pos.y * 100f / autoTileMap.Tileset.TileHeight);
	return new Vector2(tile_x, tile_y);
}

// タイル座標からワールドの位置を取得
public static Vector3 GetTilePosToWorldPos(int x, int y)
{
	float xPos = x + 0.5f;
	float yPos = y + 0.5f;
	return new Vector3(xPos * autoTileMap.Tileset.TileWidth * 0.01f, -yPos * autoTileMap.Tileset.TileHeight * 0.01f, 0);
}

こんな感じで変換してます。

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?