FC2ブログ
    01 «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.» 03

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

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

     

    【ハルシオンブログ】Riderのタブの並び順を変える 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    Riderのタブの並び順のお話。
    デフォルトだと開いた順でタブが並びますが、設定でアルファベット順にできるんですね。

    デフォルトの並び順


    設定後の並び順


    設定方法
    [ファイル]-[設定]-[エディター]-[一般]-[エディタータブ]にある「タブをアルファベット順で長部帰る」にチェックをする



    個人的にはタブが大量に開いた後だとアルファベット順の方が探すのが楽になったので紹介でした。
    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】DoTweenを使っているとたまに出ることがある警告。「Max Tweens reached: capacity has automatically....」の対応方法。 

    こんにちは!坂内っす。


    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    DoTweenを使っていると、こんな警告出たことありますか?


    DOTWEEN ► Max Tweens reached: capacity has automatically been increased from 500/100 to 500/250. Use DOTween.SetTweensCapacity to set it manually at startup
    UnityEngine.Debug:LogWarning (object)


    DoTweenが同時に生成できるTween数が500、同時に生成できるシーケンス数が100なんだけど、それを超過してるので、500の250に勝手に変えたよ。

    って警告です。


    これは以下のコードを書くことで最大数を変更できます。


    DG.Tweening.DOTween.SetTweensCapacity(tweenersCapacity:600, sequencesCapacity:250);


    これで警告は出なくなりますね。

    警告なのでそのまま放置していても動くのですが、気持ち悪いですもんね。

    SetTweensCapacityで対応してください。


    ということで、本日はここまで。
    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】配列の最後の要素を取得する 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    配列の最後の要素を取得するとき。
    簡単な話なので特に書くようなことでもないのですが、書き方がいくつかあるので。


    int[] test = new[] { 1, 2, 3, 4, 5, 6 };

    // Lengthを使用する
    Debug.Log(test[test.Length - 1]);

    // Linqを使用する
    Debug.Log(test.Last());

    // index from end を使用する C#8以降
    Debug.Log(test[^1]);


    こんな感じで同じ結果が取れますね。
    毎回 Length を書くのもですし、Linqを使うほどんのこともない気がするので、index from end を使用するのが個人的には好きですね。

    大した話ではないですがこんな書き方があるよというお話でした。
    ではではノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンブログ】Layoutグループの中で、ほかのオブジェクトのサイズが変わったときに自動で他のオブジェクトの位置を調整する方法 

    おこんにちは。坂内っす。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    UnityでHorizonLayoutを使って、こういうことをしようと思ったとき



    ※HorizonLayoutの設定はこちら。


    Sceneウインドウ等で幅(サイズ)を変更するとちゃんと両脇のオブジェクトも移動してくれるのですが、下のスライダーを動かすと幅が変わるようにコードでやるとこうなっちゃいます。

    [Blog20240219.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20240219 : MonoBehaviour
    {
    [SerializeField] Slider slider;
    [SerializeField] Image img;

    private void Start() {
    slider.onValueChanged.AddListener(ChangeValue);
    }

    void ChangeValue(float value) {
    img.transform.localScale = new Vector3(value * 2, 1, 1);
    }
    }





    こうなっちゃうことありませんか?

    サイズを変更するとこんな感じで両脇のImageが中央の絵のサイズに影響を受けなくなります。

    以下のコードに修正することで対応はできます。

    [Blog20240219.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20240219 : MonoBehaviour
    {
    [SerializeField] HorizontalLayoutGroup horiLayout;
    [SerializeField] Slider slider;
    [SerializeField] Image img;

    private void Start() {
    slider.onValueChanged.AddListener(ChangeValue);
    }

    void ChangeValue(float value) {
    horiLayout.CalculateLayoutInputHorizontal();
    img.transform.localScale = new Vector3(value * 2, 1, 1);
    horiLayout.SetLayoutHorizontal();
    }
    }



    HorizontalLayoutGroupのCaluculateLayoutInputHorizontalと、SetLayoutHorizontalをすることで以下のように動くようになります。



    真ん中のImageのテクスチャを9パッチにして、伸びてもいいようにしました。



    localScaleを変えていたので、9パッチにしても奇麗に伸びることができません。
    RectTransformのwidthを変えることで、奇麗に対応してみましょう。

    [Blog20240219.cs]

    using UnityEngine;
    using UnityEngine.UI;

    public class Test0216 : MonoBehaviour
    {
    [SerializeField] Slider slider;
    [SerializeField] Image img;

    private void Start() {
    slider.onValueChanged.AddListener(ChangeValue);
    }

    void ChangeValue(float value) {
    Vector2 size = new Vector2(value * 100 + 60, 60);
    img.rectTransform.sizeDelta = size;
    }
    }






    RectTransformのsizeDeltaを変えることで、localScaleではなく、RectTransformのWidth,Heightを変えることができます。
    この方法ならばCaluculateLayoutInputHorizontal等を書かなくても無事やりたかったことができました。

    Layoutグループの中で、ほかのオブジェクトのサイズが変わったときに自動で他のオブジェクトの位置を調整する方法でした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】正規表現を使って対象文字の数をカウントする 

    こんにちは。
    大坂です。
    流行り病がすごいみたいで、周りでも結構かかっている人がいるので、皆さんも気を付けてくださいまし。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    不特定に入ってくる文字列で特定の文字をカウントしたいときに、正規表現を使用してカウントする方法です。


    public static int CountHalfAndFullWidthCharacters(string text)
    {
    string countPattern = @"[a-zA-Z0-9]";
    int count = Regex.Matches(text, countPattern).Count;
    Debug.Log(count);
    return count;
    }


    こんな感じで書くと英数字が文字列中に何文字含まれているかカウントできます。
    ちょっとした時に必要だったので、メモがてら。
    なにかで必要だったら試してみてください

    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Favorites に登録した名前って変えれるんですね 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    以前、【ハルシオンUnityブログ】Project の Favorites にはフォルダも登録できる なんて記事を書きましたが、
    Favorites に登録した名前って変えれるんですね。
    プロジェクトによってはScriptsのフォルダをいっぱい作ったりするので変更できると便利です。



    検索でファイルを直接探してもいいんですが、名前思い出せなかったときとかはやっぱり Favorites のショートカットがあると便利ですね。
    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0