FC2ブログ
    04 «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.» 06

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

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

     

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

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    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   

    【ハルシオンブログ】多次元配列のコピーをしたい時 

    こんにちは。
    大坂です。

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

    PV:


    多次元配列の中身を別の配列にコピーする際にforとかを回しても出来るんですが、1行で書くことも出来ますよねっていうお話。
    forで書くと多重ループになりますね。

    int[,] initialArray = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10} };
    int[,] copyArray = new int[initialArray.GetLength(0), initialArray.GetLength(1)];

    for (int i = 0; i < initialArray.GetLength(0); i++)
    {
    for (int j = 0; j < initialArray.GetLength(1); j++)
    {
    copyArray[i, j] = initialArray[i, j];
    }
    }
    Debug.Log(string.Join(",", copyArray.Cast()));



    Array.Copyを使うとforのところが1行にできます。

    int[,] initialArray = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10} };
    int[,] copyArray = new int[initialArray.GetLength(0), initialArray.GetLength(1)];

    Array.Copy(initialArray, copyArray, initialArray.Length);

    Debug.Log(string.Join(",", copyArray.Cast()));


    多次元配列をコピーすことなんてあまりないかもしれませんが、だいぶすっきり書けますね。
    何かの時に使ってみてくださいまし。

    ではではノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンUnityブログ】配列を特定の値で埋める 

    こんにちは。
    大坂です。

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

    PV:


    配列の中身を同じ値で埋めたいときはありますかね?

    ループを回して入れたり初期値を書いてしまっても出来ますが、「Array.Fill」を使うと簡単にできますね。

    int[] testArray = new int[10];
    Debug.Log(string.Join("," ,testArray));

    Array.Fill(testArray, 50);
    Debug.Log(string.Join("," ,testArray));




    「Array.Fill」をするとすべての要素が50になっていますね。
    ちなみに「Array.Clear」もあって指定した配列を初期化してくれます。

    データなどを作るとき配列に特定の値を入れたいときに便利な方法でした。
    ではでは。

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンブログ】TextMeshPro で文字列の行数を知りたい時 

    こんにちは。
    大坂です。

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

    PV:


    TextMeshProで改行とかなくても行数を知りたい場合の方法です。

    public static void GetLineCount(this TMP_Text text, string msg)
    {
    var info = text.GetTextInfo(msg);
    return info.lineCount;
    }

    これだけ、行数が分かります。
    行数によって何か違う処理をしたいときなんかに使えますかね。

    短いですがこれにてノシ

    Category: Androidアプリ紹介

    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:


    小さいアイコンとかでボタンを作ったときとかに実機で試してみるとボタンが押しにくいことがあったりします。
    そういう時はボタンの押せる範囲を広げたらいいのですが、こちら簡単にできるので紹介。

    ButtonについているImageの「RaycastPadding」にマイナスの値を設定してあげるだけで押せる範囲が広がります。


    動作確認


    ちゃんとボタンの範囲外のクリックにも反応していますね!
    ボタンが小さすぎて押しにくいなんてことがあったら試してみたください。
    ではではノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0