FC2ブログ
    08 «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.» 10

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

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

     

    【ハルシオンUnityブログ】TextMesh Proでリッチテキストを除外したテキストを取得する 

    こんにちは。
    大坂です。

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

    PV:


    TextMesh Proでリッチテキストを除外したテキストを取得する方法です。
    TextMesh ProのGetParsedTextメソッドを使うだけです。


    text.text = "<color=red>PocketGirl</color>";

    // ForceMeshUpdateをしないと正常に受け取れないので実行
    text.ForceMeshUpdate();

    Debug.Log(text.GetParsedText());




    ちゃんとリッチテキスト部分を除外して取得できていますね。
    スクリプトで除外した部分だけを使いたいときなんかは便利そうです。

    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】UnityのSceneビューのオーバーレイをON/OFFする 

    こんにちは。
    大坂です。

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

    PV:


    UnityのSceneビューのオーバーレイをON/OFFってできるんですね。
    することはあんまりないかもしれませんが。

    方法はSceneビューでスペースキーを押すとできます。


    使うかどうかはわかりませんが、こんなことも出来ますよ!という紹介でした。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】コンポーネントをアサインする際にはpublicがいい?SerializeFieldがいい? 

    こんにちは。
    あと3か月で今年も終わろうとしてますね!
    なんか早い1年だった感じがします。
    それにしてもポケガ3のDL伸びませんね。
    坂内っす。

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

    PV:



    最近Unityで開発をしていると、UIなどのコンポーネントをアサインする際に、publicを使わないで[SerializeField]をつけることが多くなりました。

    ものっそい[SerializeField]が並ぶんですが、これが正しい?




    意味的にはpublicより、こっちのほうが正しいですよね?

    publicって「どこのクラスからでもアクセスができる」というアクセス修飾子ですもんね。

    基本的にはUIなどのコンポーネントって、他からアクセスしないで、UI等を司るクラスからしか触れないようにしたほうがいいかなと思ってます。

    他クラスから勝手にTextとかImage変えられたくないっすもんね。

    そのため、private 且つ [SerializeField]がいいのかなと。



    [SerializeField]は重いといった記事を見たことがあり、publicのほうがいいのか?と思った時期もありました。

    今調べるとそんなことを書いてるところはなさそう・・・・(気のせいだったかな



    基本は外部との繋がりがないものについては、private + [SerializeField]でよさそうですね。

    publicを多用している方は[SerializeField]を視野に入れたほうがいいと思ってます。


    ということで、SerializeFieldおじさんでした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】TextMesh Pro のテキストが変更されたのを検知したい時 

    こんにちは。
    大坂です。

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

    関東に台風が直撃しそうですね。関東にお住まいの方は気を付けてくださいまし。

    TextMesh Pro のテキストが変更されたのを検知したい時の方法です。

    public TMP_Text text;

    private string prevText;
    private string nextText;

    private void OnEnable()
    {
    TMPro_EventManager.TEXT_CHANGED_EVENT.Add(OnTextChanged);
    }

    private void OnDisable()
    {
    TMPro_EventManager.TEXT_CHANGED_EVENT.Remove(OnTextChanged);
    }

    private void OnTextChanged(Object obj)
    {
    if (obj == text)
    {
    Debug.Log($"テキストが変更されました。{prevText}⇒{nextText}");
    }
    }


    これだけ書いてあげればスクリプトでテキストを変更した時に検知してくれます。

    一応変更のテスト。

    void Start()
    {
    prevText = text.text;
    text.text = "ポケットガールよろしくね!";
    nextText = text.text;
    }



    ちゃんとログが出ますね。
    テキストの内容が変更された時に何かしたい場合は便利そうです。

    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】評価演算の&&と&の違い。&1個の使い道ってあるの? 

    こんにちは。
    もう秋だというのに全然涼しくなりませんね。
    日本も四季がなくなっていくっていう記事以前見ましたが、すでになくなってそうですね。
    坂内っす。


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

    PV:



    最近演算子のことをちょっと調べる機会があったんです。
    普通によく書く演算子


    int a = 2;
    int b = 3;
    if (a == 1 && b == 3) {
    Debug.Log("同じだよ");
    } else {
    Debug.Log("違うよ");
    }



    &&

    ってやりますよね。

    「aが1 且つ bが3の場合true」

    上記のコードだと、aには2が入っているので、このifの中には入りません。

    違うよ

    と出力されます。

    この「&&」というように&を2個かくのを「短絡評価」というようです。

    「&」の評価と「&&」の評価の違いはなんでしょうか?


    ●「if(a == 1 & b == 3)」の場合
    aは1ですか?イイエ。
    bは3ですか?ハイ。
    片方がイイエなので、ifの中には入りません。


    ●「if(a == 1 && b == 3)」の場合
    aは1ですか?イイエ。
    イイエが1つでもあったので、ifの中には入りません。

    短絡評価の場合は、&&の前の評価がfalseの時点で&&の後の評価はしなくなります。
    これによって処理が早くなるらしいですね。

    確かに&&評価の場合は、片方がFalseの時点でそれ以降関係ないですもんね。

    では、なんで「&」なんてあるのか?全部「&&」でいいんじゃない?
    って思ったあなた。&だけのこともあるかもしれません。

    こんな感じのコードがあるとした場合、

    using UnityEngine;

    public class Blog20230904 : MonoBehaviour
    {
    int a = -1;
    int b = 2;
    int bChkCnt = 0;

    void Start()
    {
    if (CheckA() & CheckB()) {
    Debug.Log("TRUE");
    } else {
    Debug.Log("FALSE");
    }
    Debug.Log("CheckCount : " + bChkCnt);
    }

    bool CheckA() {
    if (a > 0) {
    return true;
    } else {
    return false;
    }
    }

    bool CheckB() {
    bChkCnt++;
    if (b > 0) {
    return true;
    } else {
    return false;
    }
    }
    }



    aのチェックとbのチェックを行い、両方のチェックでTrueが帰ってきたらTRUEと表示する。
    Bのチェックの際にBをチェックした回数をカウントアップしたい。
    この場合、「&&」だとチェックAがFalseの場合にBのチェックが行われないのでカウントが上がっていきません。
    そういう時には「&」を使い、毎回Bのチェックも行いカウントアップすることができます。

    どうでしょうか?
    こんなコードあり得るんか・・・?まぁあるかもしれない。
    プログラムの要件によりますよねw

    ということで、評価演算の「&&」と「&」の違いでした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0