げんとめブログ

よく使うアセット群

買ったアセットがいつのまにか100個超えてました。

金額は1000$以上。割引も考慮してそれくらいです。

良いアセットも、正直使いづらいアセットも色々あったり。

アフィリエイトついでによく使うアセットまとめてみました。使用例も載せてみます。

使ったアセット一覧はこちら。

Rxとかいう非同期のライブラリがあるそうですが、それのUnity用です。

使い方を覚えるのが大変ですが、色々使い道があります。

using UnityEngine;
using UniRx;
using System;
public class UniRxSample : MonoBehaviour
{

    Subject asyncSubject = new Subject();
    // Start is called before the first frame update
    void Start()
    {
        //指定した時間待った後に実行する
        Observable.Timer(TimeSpan.FromMilliseconds(3000/*ミリ秒*/))
            .Subscribe(DelayMethod);
        //別スレッドで実行(スレッドプールからスレッドを見つける
        asyncSubject.ObserveOn(Scheduler.ThreadPool).Subscribe(EventMethod);
        //↓はメインスレッドで実行されます。リワード広告を実装するときに使うことになるかもしれません
        //asyncSubject.ObserveOnMainThread().Subscribe(EventMethod);
        //実行したいところでOnNextを使う
        asyncSubject.OnNext(Unit.Default/*必要な引数、定型文*/);
    }

    void EventMethod(Unit unit/*この引数には意味なし、Rxでなんか必要みたいです*/)
    {
        long totalNum = 0;
        //時間のかかる処理
        for (int i = 0; i < 1000000000; i++)
        {
            totalNum += i;
        }
        Debug.Log($"演算結果{totalNum}::ここは非同期で実行される");
    }
    void DelayMethod(long _long)
    {
        Debug.Log("指定した秒後に実行される");
    }
}

注意点としては処理が少し重いことだそうです。

あと、メインスレッドじゃないとUnityのゲームオブジェクトは参照できません。

こちらのサイトがめちゃくちゃ参考になります。

Unityエディターの実行中の動画をとれます。

Twitterとかに進捗の動画上げるときとか便利です。

注:DOTweenというフリーのアセットが必要です。Dotweenがないままインポートするとエラーがべらっと出ます。DoTweenをインポートすれば治ります。

注:uGUIについての知識が必要です。

UIにアニメーションを付けれたり、表示したり隠したりを簡単にできるようになります。

自分で設定もできますが、デフォルトの物を使うだけでも結構良い感じにできます。

初期設定:ToolDoozyUIControllePanel(Alt+D)

TextMeshProを使う場合、先にTextMeshProをインポートして画像のボタンをおしてEnableにする必要があるようです。

TextMeshProはUnityの2018.3(それか2018.2)では元からインポートされていた気がします。されてなかったら、WindowPackageManagerからインポートできたはずです。

とりあえずの使い方は、

  1. DoozyUIのUICanvasを追加(Hierarchyで右クリック)
  2. UICanvasの子にUIElementを追加
  3. UIElementのインスペクタからRenameGameObject~~~ボタンを押す
  4. InANimationとOutAnimationを設定

これでUIelementのShowメソッドを呼び出すと設定したアニメーションでUIが表示されます。

表示されるときの音声もセットできます。

douga_20190204_001855

using UnityEngine;
using DoozyUI;
public class DoozyUISample : MonoBehaviour
{
    private void Start()
    {
        //エレメント名とカテゴリ名は
        //UnityEditorで[Tool]>[DoozyUI]>Controlle~~から色々設定できる
        //UIelementのインスペクタからrenameGameObject~~ボタンで
        //ゲームオブジェクトの名前を変更しておかないとちゃんと動かない
        UIManager.ShowUiElement("UIエレメント名", "カテゴリ名", false/*アニメーションさせて表示する場合false*/);
    }
}

アセットをローカライズ(多言語対応)するときにめちゃくちゃ役に立ちます。

UnityEditor内でGoogle翻訳の機能を使うことも可能。

翻訳に必要なすべてがここにあるといっても過言ではない。

使い方とかは以前書いたので別記事。

スケールやポジションを時間で変更させるようなTween系のアニメーションをスクリプトから使えるようになるアセットです。

テキストの文字を段々増やしていったり、ダメージを食らった時に、HPゲージをぎゅーんって感じで減少させたり。

Pro版もありますが、フリー版でも十分使えます。プロ版はアニメーションをインスペクタ―から設定できるようになったりします。自分はあんまり使ってないですが。

こんな感じでtransformのメソッドにTween系のメソッドが追加されます。簡単に使えてとても便利です。コード補完機能を使えばすぐわかります。Awesome。

それと、Dotween.Toというメソッドがとても便利で色々使い道があります。

値がじんわりと変化していくような処理を簡単に記述できます。

覚えておくと色々捗りまくります。

ラムダ式で書くのが楽ですが、イマイチ知らない人はメソッドをそのまま引数にも渡せます。逆にわかりづらいかもしれませんが。

using UnityEngine;
using DG.Tweening;
using UnityEngine.UI;
public class DOTweenSample : MonoBehaviour
{
    public float startValue,endValue;
    public float duration;//アニメーションの期間
    public Color startColor,endColor;
    public Text _text;
    public Image _image;
    private void Start()
    {
        DOTween.To(
            this.InitialValue,//()=> {return startValue}
            this.TweeenTo,//(currentValue) => {_text.text = $"{currentValue:f1}
            endValue,
            duration);
        DOTween.To(
            this.InitialColor,//()=>{return startColor}
            this.ColorTweenTo,//(currentColor) => {_image.color = currentColor;}
            endColor,
            duration);
    }
    //最初に1回このメソッドが呼ばれる
    float InitialValue()
    {
        return startValue;
    }
    //毎フレームこのメソッドが呼ばれる
    //currentValueに変化中の値が入っている
    //startvalueからendValueに向かってdurationの時間をかけて値が変化していく
    void TweeenTo(float currentValue)
    {
        _text.text = $"{currentValue:f1}";
    }


    //最初に1回このメソッドが呼ばれる
    //ColorのほかにもVector3とかQuartanionとかも使えたと思います。
    Color InitialColor()
    {
        return startColor;
    }
    //currentColorが変化していきます
    void ColorTweenTo(Color currentColor)
    {
        this._image.color = currentColor;
    }
}

文字字体を色々アニメーションできる。

デフォルトのアニメーションを使うだけで色々できます。

ただTextmeshのGUIを使うときにAddComponentからできない? 自分だけかもしれませんが。

[GameObject]TextFXからだと出来るんですけども。

追記:TextMeshProのFXが使えないのはエディタメニューのAssetsReimportAllを使うと出来るようになるみたいです。アセットストアのレビュー内のやり取りに書いてました。ReimportAllはすごく時間かかるし、プロジェクトがなんか変な感じになるかもしれないので、バックアップをとってからやるべきです。

アニメーションの設定はインスペクタから出来るようになってます。

Exit mobile version