Unity DOTweenのプログラム例

以下に、DOTweenを使用したソースコード例をおいておく。シーケンス準備からコールバック、移動、などまで一通りまとめた。これで大体は事足りるだろう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

//トップページのロゴをびょーんとしたあとに無限にふわふわ動かす
public class TopRogoMove : MonoBehaviour
{

    //RectTransform指定。Getconponentは遅いんで極力つかわんことにする
    public RectTransform titleRogo;

    //アニメーションシーン
    private Sequence _myseq;
    private Sequence _myseq2;

    void Start()
    {

        //アニメーション、シーケンス準備
        _myseq = DOTween.Sequence();

        _myseq.AppendInterval(
            1.0f                            //待ち
        );

        //びよーん
        _myseq.Append(
            titleRogo.DOPunchScale(
                new Vector2(1.2f, 1.2f),    //scale1.5倍指定
                1.0f                        //アニメーション時間
            )
        );

        //数秒まつ
        _myseq.AppendInterval(
            1.0f                            //待ち
        ).AppendCallback(() => {            //コールバック設定、これをいれることで終わったあとに更に処理ができる

            //アニメーション、シーケンス準備、2つ目
            _myseq2 = DOTween.Sequence();

            //ふわふわ(ループ)
            _myseq2.Append(
                titleRogo.DOLocalMove(          //ローカル座標
                    new Vector2(0.0f, 150.0f),  //移動XY
                    2.0f                        //アニメーション時間
                )
                .SetEase(Ease.InOutBack)        //イージング指定
                .SetRelative()                  //いまいる場所から移動
            );

            _myseq2.AppendInterval(
                0.4f                            //待ち
            );

            _myseq2.Append(
                titleRogo.DOLocalMove(          //ローカル座標
                    new Vector2(0.0f, -150.0f), //移動XY
                    2.0f                        //アニメーション時間
                )
                .SetEase(Ease.InOutBack)        //イージング指定
                .SetRelative()                  //いまいる場所から移動
            );

            _myseq2.SetLoops(-1);               //-1は無限ループ

            //再生
            _myseq2.Play();

        });

        //再生
        _myseq.Play();

    }

    private void OnDisable()
    {
        //オブジェクトが破棄されるタイミングでTweenアニメーションもkillしておく
        if (DOTween.instance != null)
        {
            _myseq.Kill();
            _myseq2.Kill();
        }
    }

}

イージングの種類はこちらをよく参考にさせてもらっています。

リンク集

最近さがしたり、参考にしたサイトをまとめてリンクしておく。

Modern UI Pack
https://assetstore.unity.com/packages/tools/gui/modern-ui-pack-150824

Pro Cartoon UI Pack
https://assetstore.unity.com/packages/2d/gui/icons/pro-cartoon-ui-pack-129756

Airy UI – Easy UI Animation
https://assetstore.unity.com/packages/tools/gui/airy-ui-easy-ui-animation-135898

Youtube動画からサムネイル画像を取得する方法
https://www.billionwallet.com/goods/youtube_image.html

firebase確認
https://apps-gcp.com/firebase-authentication/
https://firebase.google.com/docs/auth/unity/twitter-login?hl=ja

UnityのUpdate()をマネージャで管理`
https://www.weed.nagoya/entry/2017/09/20/135611

Crowi
国産のWikiソフトで、もともとは社内用に開発したWikiをオープンソース化した物
https://qiita.com/Bakudankun/items/740ac8ba1395fe4e40a6

無限スクロール
http://kohki.hatenablog.jp/entry/Unity-uGUI-Fixed-Scroll-Rect
http://www.asset-sale.net/entry/EnhancedScroller_1

スクロールアセット
https://qiita.com/ayumegu/items/556d0385bbd4e00b89f5

Unity Apple
https://gurutaka-log.com/unity-ios-release
http://bob-jpn-heuer0925.hatenablog.com/entry/2017/09/09/035351

Unity Android署名
https://ideacloud.tokyo/develop-days/development/apk_rerease_setting.html

備忘録 Unity アプリからURLを開く
https://ameblo.jp/10soba/entry-12445527586.html

アプリのバックグラウンド移動と終了の検知
起動時に電源をOFFにし、いったんバックグラウンドにいったときの処理
http://greenkour.hateblo.jp/entry/2018/08/20/070000
https://qiita.com/wapa5pow/items/2cbad14267d2ad3433f5

誰でも簡単に使える最強のAudio(BGM, SE)Manager【Unity】
https://kan-kikuchi.hatenablog.com/entry/AudioManager_2019

Unity で自動でスリープに入らないようにする設定
https://loumo.jp/wp/archive/20140205000312/
https://www.urablog.xyz/entry/2017/06/11/230753

ソーシャルログイン’ を90秒で導入する方法 / OAuth認証
https://qiita.com/RingCaptcha/items/60db56ed24567718fe80

Twitterを使った認証機能
https://blog.mbaas.nifcloud.com/entry/8046

windows10マシンのCドライブが容量いっぱいになった時の苦肉の策

今日のメモは自己責任度合いが高いため、注意すること。

windows10マシンを長年使用していると、どうにこうにも容量がいっぱいになってくることがある。一番ベストな方法は、OS自体を再インストールすることだが、時間もかかるし、環境によってはできないこともある。

ゴミ箱を空にする、クリーンアップをする、などいろいろあるが、今日ここでメモしておくのはwindowsフォルダ内にある Installer フォルダを別ドライブに変えてしまう方法だ。

Instrallerフォルダはインストールファイルが日々溜まっていく。消えることはないため、貯まる一方である。自分のマシンは40GBほどあった。これを移動できれば、かなり容量が稼げる。

しかし、windowsフォルダ内のものは、システムに関わってくるため、下手に消してしまうと動かなくなってしまう場合があるため、簡単に移動はできない。そこで シンボリックリンク を使うことにする。

条件として「Dドライブなどの大容量の別ドライブが内蔵されていること」が必須。

後述する手順によって
C:\Windows\Installer
  ↓
D:\Windows_SymbolicLink\Installer

にて使用するようにシンボリックリンクをはる。

【シンボリックリンクを利用してCドライブの空き容量を増やす】

以下の作業は全て管理者アカウントで行う。

前準備)
「エクスプローラー」→「表示」にて「保護されたオペレーティングシステムファイルを表示しない(推奨)」のチェックを外しておく。

(1)Dドライブに以下のフォルダを作成する
D:\Windows_SymbolicLink\Installer

(2)C:\Windows\Installerのフォルダの中身をまるごと(1)で作成したフォルダにコピー(20分くらいかかります)

(3)C:\Windows\InstallerのInstallerの名前を「Installer_bk」と変更しておく。(何かあった時のための保険として)

(4)管理者権限でコマンドプロンプトを実行。C:\Windowsに移動する。
CD C:\Windows

(5)以下のコマンドにてシンボリックリンクを作成。
mklink /D Installer D:\Windows_SymbolicLink\Installer

(6)再起動、通常のアカウントでログイン。

※問題なければ、ちゃんと起動します。今後Installerは、Dドライブの方に記録されていきます。「うまく動いてるなー」と思ったら頃合いをみてCドライブの「Installer_bk」は削除。(Cドライブの容量は40GBは空くと思われます。)

懸念点)
システムファイルにシンボリックリンクをはるという荒業なので予期しないなにかが起こるかもしれない、あくまで自己責任で。

Unity2Dの定番ファイル構成(自分用)

いろいろ試したけど、自分は下のようにするのが定番になってしまった。

配下にScene001などのフォルダをいれ、その中にSCENEやScriptをいれる。自分は2Dで作成することが多いため、画面ごとに分けていく方法が後々わかりやすくなってていい。

共通部分はcommonにいれる。

Scriptはできれば1Sceneにつき1つが自分は好きなんだが、部品ごとにScriptをつけたいことも多々あるので Scene001 の中に Script フォルダをつくり、そこにいれる。

基本的に共通のスクリプトはつくらないようにしている。シーンごとに完結するようにしている。

Unity2Dでのスマホの解像度定番設定、Android、iOS(自分用)

現在、スマホはAndroid,iOSとたくさんの機種があり、解像度もたくさんあるので、なかなか定番の解像度を設定するのは難しい。

たくさんの技術者とか端末が一通り揃っていればいいんだろうけど、個人でやってるときは、そんなわけにはいかない。また、そこまでがっちりと求めれていない場合もある。

自分の定番設定をここに備忘録として残しておく。

前準備としてプラットフォームはAndroid。

そして、自動回転を許可する向きは縦向きのみとしておく。だいたいスマホはこの設定でいけるとおもう。横向きとかで作成したい場合は適時変更すること。

まずはCanvas。レンダーモードを「スクリーンスペース・オーバーレイ」に。Canvas Scaler のUIスケールモードを「画面サイズに拡大」。参照解像度をX=1080,Y=1920にする。多分これがキモですね。将来的にはこの数値が上がっていくんだろうと思う。でもいまのところはこれで十分のはず。

Canvasの中にPanelを入れる。

以降、さまざまな部品はこのPanel内に配置していくことになる。

Panelの設定、middle、centerを中心にする。幅と高さは自動的に1080×1920になっているはず。

以上の設定で、だいたいのスマホに対応できるはず。この解像度の比率はきちっと守られ、余白が出た場合はCameraの背景色が表示される。自分はここを黒にしておきます。

以上です。

自分はこの設定でだいたい作ってます。