FC2ブログ
    12 «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.31.» 02

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

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

     

    【ハルシオンブログ】DOTweenの一時停止、再開、リスタート、コンプリート 

    こんにちは。
    大坂です。

    DOTweenで一時停止、再開、リスタート(最初から再生)、コンプリート(最後に飛ばす)の方法。

    Tweenerを使ってこんな感じでやってます。

    iTweener tweener;

    private void Start() {
    tweener = tran.DOLocalMoveX(200, 5f);
    }

    // スタート、再開
    public void OnclickPlay() {
    tweener.Play();
    }

    // 一時停止
    public void OnclickPause() {
    tweener.Pause();
    }

    // リスタート
    public void OnclickRestart() {
    tweener.Restart();
    }

    // 最後に飛ばす(スキップとのときなんかに便利)
    public void OnclickComplete() {
    tweener.Complete();
    }


    それぞれのボタンに設定して、ボタンを押してみた結果。


    Pause:一時停止
    Play:アニメーションの続きから再生
    Restart:アニメーションを最初から再生
    Complete:アニメーションの終りに飛ぶ
    という感じで動いてますね。

    Pause、Playについては以前も記事がありましたね…。
    一応ということで。

    こんなことができるよと紹介でした。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】「0.12,5.1,2,4.2」こんな文字列からfloatの配列を簡単に作る方法。 

    あと10日もしたら今年が終わってしまいます!
    やばいやばいやばい 坂内です。

    1年過ぎるのが早すぎますね・・・・

    Unityでゲームを作っていて、「0.12,5.1,2,4.2」こんな文字列から
    0.12
    5.1
    2
    4.2
    というfloatの配列を取り出したいなぁと思ったことがあったんです。

    簡単にfloatの配列として取り出す方法がありました。


    using System;
    using UnityEngine;

    public class Blog20211220 : MonoBehaviour
    {
    void Start()
    {
    string aaa = "0.12,5.1,2,4.2";
    float[] bbb = Array.ConvertAll(aaa.Split(','), float.Parse);
    foreach(float b in bbb) {
    Debug.Log(b.ToString());
    }
    }
    }





    こんな感じでできますね。

    float[] bbb = Array.ConvertAll(aaa.Split(','), float.Parse);

    intの配列にするならば、
    int[] bbb = Array.ConvertAll(aaa.Split(','), int.Parse);

    もちろん上記のaaaだと小数点があるので、このままintにするとエラーになります。


    ということで、カンマ区切り文字列を配列として取り出す簡単な方法の紹介でしたー

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2012.2でProjectWindowでコピペなどができるようになっていた。 

    こんにちは。
    大坂です。

    Unity2012.2でProjectWindowでコピー、カット、ペーストができるようになっていました。
    できるようになる前はドラッグ&ドロップやエクスプローラーを開いてやっていたので便利になりますね。

    【ショートカット】
    ・コピー :Ctrl+C
    ・カット :Ctrl+X
    ・ペースト:CtrlV

    一応やってみた感じを載せておきます。
    コピー&ペースト


    カット&ペースト


    ちょっとしたことですが、いい機能が追加されましたね。
    ではまたノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンブログ】Invoke使ってますか?私は使ってません。でも意外と使えそう?簡単なInvokeの使い方 

    こんにちは。坂内っす。
    さみーさみー
    年末なってきましたね!
    忘年会やりすぎ注意ですね!

    さて、UnityでInvokeって使ってますか?
    Coroutineはよく使うけど、Invokeってあんまり使ったことないんですよね。

    でも実は意外と使えるのかなって思い調べてみたので、そのメモです。


    基本的に「〇〇秒後に■■の処理を行う」って時に使いますよね。

    【Invoke】

    [Blog20211213.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20211213 : MonoBehaviour
    {
    [SerializeField] Image imgSquare;
    [SerializeField] Button btnChangeColor;

    private void Start() {
    btnChangeColor.onClick.AddListener(() => Invoke("ChangeColor", 2f));
    }

    void ChangeColor() {
    imgSquare.color = Color.blue;
    }
    }



    「ボタンを押した2秒後にImageの色を青にする」
    という処理がこれでできます。

    【InvokeRepeating】
    InvokeRepeatingというのもあります。
    「指定したメソッドを〇秒おきに実行」というのができるもの。

    [Blog20211213.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20211213 : MonoBehaviour
    {
    [SerializeField] Image imgSquare;
    [SerializeField] Button btnChangeColor;

    private void Start() {
    btnChangeColor.onClick.AddListener(() => InvokeRepeating("ChangeColor", 2f, 1f));
    }

    void ChangeColor() {
    imgSquare.color = new Color32((byte)Random.Range(0,256), (byte)Random.Range(0, 256), (byte)Random.Range(0, 256), 255);
    }
    }



    こんな感じにすれば、ボタンを押した2秒後に色が変わり、その後1秒間隔で色が変わります。

    【CancelInvoke】
    Invokeを止めるものもあるぽいです。

    [Blog20211213.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20211213 : MonoBehaviour
    {
    [SerializeField] Image imgSquare;
    [SerializeField] Button btnStart;
    [SerializeField] Button btnStop;

    private void Start() {
    btnStart.onClick.AddListener(() => InvokeRepeating("ChangeColor", 2f, 1f));
    btnStop.onClick.AddListener(() => CancelInvoke());
    }

    void ChangeColor() {
    imgSquare.color = new Color32((byte)Random.Range(0,256), (byte)Random.Range(0, 256), (byte)Random.Range(0, 256), 255);
    }
    }



    ストップボタンを押すと、ちゃんと色の切り替えが止まりますね。

    意外と使えたりする??

    ただ、メソッドの呼び出しが文字列なのがやっぱり気になりますよね。
    メソッド名ミスでも気づかないし・・・・
    何かあった時に追いづらいのも嫌ですし。

    ということで、Invokeの紹介でした。

    ちょっと使ってみるのもありかもしれませんね。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2021.2でQuickSearchが便利になった。 

    こんにちは。
    大坂です。

    Unity2021.2でQuickSearchが便利になりました。
    「Ctrl+K」か[Edit]-[SearchAll]で開けます。



    こんな感じのWindowが開いて、文字を力すると
    Project、Hierarchy、Packagesの中から検索してくれます。



    Projectのタブを押すとプロジェクト内に絞ってくれて、Hierarchyを押すとHierarchy内に絞ってくれます。





    また、検索したものをダブルクリックしたときの挙動も変更できるようですね。
    [Edit]-[Preferences]-[Search]のところで変えられます。





    ということで、使えそうな機能だったので紹介でした。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0