FC2ブログ
10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】タイルマップを使ってみた。意外と簡単にできるんすね。 

こんにちは!坂内っす。
もう次の日曜日にはデジゲー2018っすね!
ブースの皆さん頑張って準備してくださいな!

さてさて、本日のUnityのお話はタイルマップについて。
Unity2017.2くらい?から導入されたタイルマップなんですが、今まで触ってもなかったので、ここで触ってみようかなと。

タイルマップとは?
タイル(英: tile)は、建設資材の一つで、壁や床の保護、あるいは装飾用に多数張りつける板状のもの。

地図、マップ

ってことで、ゲームの画面をタイルで並べるように作る機能のようです。

さてさて、アセットストアにもいろいろとタイルマップで使えるマップチップのアセットがあるようです。
今回はこれを使ってみました。



まずはタイルパレットを作成します。
あ、ちなみに使用しているUnityは2018.2.1です。バージョンによって多少コマンドの位置が変わるかも?



Tile Paletteを選択するとウインドウが出てきます。

出てきたウインドウの「Create New Palette」を押して、Nameにパレット名を入力し、「Create」を選択。


そうすると、今付けた名前のパレットプレハブができます。


次に使用するテクスチャを選択し、設定します。

今回はこれを使ってみましょう。


Bricksってファイルです。

Sprite Modeを「Multiple」に変更します。
Pixel Per Unitの数値をタイルのサイズにします。
チップが16x16だった場合は16を入力します。(今回は32x32だったので、32を入力)


そして「Sprite Editor」ボタンを押す!

SpriteEditorの画面で「Slice」ボタンを押し、出てきたウインドウでTypeを「Grid By Size」へ変更。
PixelSizeを32,32に設定し「Slice」ボタンを押す。




テクスチャが32x32で白い線で切られると思います。

これでウインドウの右上にあるxを押してApply。

これで、テクスチャの準備は完了です。

次に、今のBrickファイルをTilePaletteウインドウにドラッグ&ドロップします。



これで完成です。

次にタイルマップを画面に置いてみましょう。

「GameObject」⇒「2D Object」⇒「Tilemap」を選択します。


そうすると、Hierarchyに「Grid」というオブジェクトが作成されます。
このGridを選択すると、Sceneウインドウに白い線が出るようになります。


この状態で、TilePaletteで好きなチップを選択、クリックやドラッグでタイルを配置できます。



Shift+ドラッグ(クリック)で削除できます。

また、"「"ボタン、"」"ボタンを押すことでタイルを回転できます。

さて、このままだとこうなっちゃいます。



そうです。コライダーが付いていないのですり抜けちゃう!

コライダーの付け方は簡単です。

Hierarchyにある「Tilemap」に「TilemapCollider2D」を付けます。



これでキャラがちゃんとぶつかるようになります。

こんな感じ。


簡単にTilemapって使えるんですね!
今度何かにつかってみよう!

ということで、今日はこれであでゅ~ノシ
スポンサーサイト

Category: 開発日記(Unity)

Thread: プログラミング

Janre: コンピュータ

Tag: Unity  ゲーム  2Dゲーム  Sprite  ゲーム開発  タイルマップ 
tb 0 : cm 0   

【ハルシオンブログ】DoTweenのSequenceにOnCompleteつけてやりたいんだけど、うまくいかなかったんよ。結果できました! 

こんにちは!くっそ暑い日が続いてますね!
部屋から出たら死にそうになります。坂内です。

さて、本日はDoTweenの話。
DoTweenSequenceって皆さんお使いになられてますか?

簡単に連続してTweenができる優れもの。

例えば、こんな感じにImageを並べて



こんな感じにコードを書けば。

DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence();
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.Play();
}
}


こうなります。



DoTweenのTweenスタート時、Tween終了時に処理を加えることができます。

DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence()
.OnStart(() => {
StartProc();
});
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.Play();
}

void StartProc() {
Debug.Log("はじまり");
}

void EndProc() {
Debug.Log("終わり");
}
}


OnStartはちゃんと入るのですが、OnCompleteを書こうとすると、エラーになって書けない…
書き方がいけないのかな?


ここじゃない?
ここ?


ここも違う?どこ?

ここも違う!!

こうなったら先生がゴロゴロしているツイッターにきいてやれ!

で、先生がいうには。


なんだって!?ヽ(゚Д゚;)ノ!!

【DoTweenTest.cs】
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class DoTweenTest : MonoBehaviour {

public Image[] tiles;

private void Start() {
Sequence tileSeq = DOTween.Sequence();
tileSeq.OnStart(() => StartProc());
tileSeq.Append(tiles[0].DOFade(0f, 2f));
tileSeq.Append(tiles[1].DOFade(0f, 2f));
tileSeq.Append(tiles[2].DOFade(0f, 2f));
tileSeq.OnComplete(() => EndProc());
tileSeq.Play();
}

void StartProc() {
Debug.Log("はじまり");
}

void EndProc() {
Debug.Log("終わり");
}
}


こんな書き方できるらしいっす。

さすが先生。

これで、シーケンス使ったDoTweenで、最初や最後に別関数を呼べますね!

それでは今日はこれくらいでお暇します。

あでゅ~ノシ

Category: 開発日記(Unity)

Tag: Unity  DoTween  Sequence  uGUI  ゲーム開発 
tb 0 : cm 0