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やらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】SoftMaskScriptってやつをちょっと使ってみた。 

こんにちは。
大坂です。

急に寒くなってきましたね。
皆様体調にはお気をつけを。

uGUI(TextやImage)を簡単にトランジション的なマスクをするのに使える「SoftMaskScript」ってやつの紹介。

以下のダウンロードページでダウンロードできる
UnityUIExtensions.unitypackage」の中にある「SoftMaskScript」ってやつですね。
https://bitbucket.org/UnityUIExtensions/unity-ui-extensions/downloads/

他にもいろいろはいっていますが。とりあえず「SoftMaskScript」使ってみました。

使い方は簡単。
TextとかImageにAddComponentして、
AlphaMaskにテクスチャを設定してCutOffの数字をいじるだけですね。



※クリックすると動くよ

ちなみにスクリプトからいじる場合はこんな感じ。
using UnityEngine;
using UnityEngine.UI.Extensions;
using DG.Tweening;

public class Test : MonoBehaviour {

public SoftMaskScript txtMask;
public SoftMaskScript imgMask;

// Use this for initialization
void Start() {
DOTween.To(() => txtMask.CutOff, (n) => txtMask.CutOff = n, 1, 2f).SetLoops(2, LoopType.Yoyo);
DOTween.To(() => imgMask.CutOff, (n) => imgMask.CutOff = n, 1, 2f).SetLoops(2, LoopType.Yoyo);
}


※クリックすると動くよ

なんか簡単なのに使えるかもしれませんね!
ではまたノシ
スポンサーサイト

Category: 開発日記(Unity)

Tag: Unity  2Dゲーム  uGUI 
tb 0 : cm 0   

【ハルシオンブログ】int → enum の変換とか最近使ったちょっとしたやつ? 

こんにちは。
大坂です。

今週も木曜日がやってきました。
そして今週もたいして書くことがありません!

ということで最近コーディングで使ったやつ。
相変わらず誰でも知ってそうなのでごまかしていきます(ぁ

とりあえず int → enum の変換について
今までこんな感じでしかできないと思ってたんですが、
enum RARITY {
UR,
SSR,
SR,
R,
N,
}

int num = 3;
RARITY rare = (RARITY)Enum.ToObject(typeof(RARITY), num);


これでもできるんですね。
RARITY rare = (RARITY)num;


なんか結構前にやった時にできなかった気がするけど気がしただけだったのか…。

次、ListのInsert…まぁ普通にあるやつですが最近初めて使いました。
Listの指定した場所に挿入するやつですね。
List blogList = new List();
blogList.Add("aaaa");
blogList.Add("bbbb");
blogList.Insert(1, "cccc");


とかってやると、
aaaa, cccc, bbbb
の順番になる。

リストの長さより長いところに挿入しようとするとエラーになります(当たり前?
List blogList = new List();
blogList.Insert(1, "cccc");



一応こんな感じでやると、ArgumentOutOfRangeExceptionが出ますね。

ということで今週も終わりです。
また~ノシ

Category: 開発日記(Unity)

Thread: プログラミング

Janre: コンピュータ

Tag: Unity  C#   
tb 0 : cm 0   

【ハルシオンブログ】Androidでバックボタンでアプリを終了させるとき? 

こんにちは。
大坂です。

今日から11月ですね!
今年もあと2ヶ月です…orz

さて、今週もタイトル通りですが、Unityでアプリを作ったときのAndroidアプリのバックボタンのお話。
終わらせるだけならこんな書き方ができるよってだけですが。

とりあえず今までやってた方法。
void Update () {
if(Input.GetKeyDown(KeyCode.Escape)) {
Application.Quit();
}
}

これでバックボタン押すと終了します。
これを1行にできる。
void Start () {
Input.backButtonLeavesApp = true;
}

これでもバックボタンを押すとアプリが終了されますね!
簡単にアプリを終わらせたいだけならこれで十分な機能なので紹介でした。

では超絶に短いですが今週もこれにてノシ

Category: 開発日記(Unity)

Thread: プログラミング

Janre: コンピュータ

Tag: Unity  Android  ボタン 
tb 0 : cm 0   

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

こんにちは!坂内っす。
もう次の日曜日にはデジゲー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