FC2ブログ
    09 «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.» 11

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

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

     

    【ハルシオンブログ】Listの最大値、最小値の要素番号が欲しかった。 

    こんにちは。
    大坂です。

    10月が終わりそうですね・・・今年もあと2ヵ月ですか。
    今年もあっというまに終わってしまいそうですが、頑張っていきましょう。

    さて、Listで最大値とか最小値の要素番号が欲しい時。
    まぁ普通にForで回してやってもいいんですが、一応一行で書けるのでそちらの紹介。
    普通のAPI使うだけですけども。

    List<int> test = new List<int>() { 0, 5, 3, 2, 7, 1 };
    Debug.Log($"最大値の要素番号:{test.IndexOf(test.Max())}");
    Debug.Log($"最小値の要素番号:{test.IndexOf(test.Min())}");


    はい。これだけです。

    ちゃんと取れてますね。
    同じ数字があると要素番号の小さいほうしか取れないですけどね。
    どこかで使えることがあるかもしれません。

    では今週もこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2019で追加されたアセット「QuickSearch」が何気に使いやすいかも? 

    こんにちは。坂内です。

    Unity2019から入っている便利そうな機能を発見したので紹介です。

    ”Quick Search”ってみなさん使ってますか?

    「Alt+^」で起動できます。

    アセットなので、入っていないとこんなメッセージが出てきます。



    YESを押してインポートしましょう。

    インポートが終わって、Alt+^を押すとこんなウインドウが開きます。



    使い方は探しているファイルやフォルダの名前を書くだけ。


    これだけでプロジェクト内の色々なファイル等を簡単に検索してくれる。
    検索した結果をそのままドラッグアンドドロップで使用することもできちゃいます。




    何気に使いやすいこんなアセットがUnity2019から導入されていたようです。

    ということで、QuickSearchアセットの紹介でした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】最大値、最小値チェックして、最大値、最小値を超えさせたなくないとき。 

    こんにちは。
    大坂です。

    色々な場面で最大値と最小値をチェックして上回っていたら最大値にして、
    下回っていたら最小値にするなんて言うコードを書くときがあります。
    こんな感じです。

    int str = 50
    int upStr = 60;

    int totalStr = str + upStr;

    // 100以上にしない
    if(totalStr > 100) {
    totalStr = 100;
    }
    // 0以下にしない
    if(totalStr < 0) {
    totalStr = 0;
    }


    「Mathf.Clamp」を使用すると上記のif文のところが1行で書けます。

    int str = 50
    int upStr = 60;
    int totalStr = str + upStr;
    // 0以下、100以上にしない
    totalStr = Mathf.Clamp(totalStr, 0, 100);

    簡単に書けるなら簡単に書いた方がいいですかね?
    ということで紹介してみました!

    では、今週はこれだけ!
    また来週ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 1   

    【ハルシオンブログ】Unity+PlayfabのRequestType設定の謎。Playfabマスターの方教えて! 

    寒くなってきました。
    風邪に注意してくださいませ。坂内っす。

    Unity+Playfabの謎の話。

    過去にやっていたプロジェクトの設定と、今新しく始めたプロジェクトの設定に差が生じています。

    これ、どういうことなの?って思ったので、ちょっと書いときますね。


    【以前やっていたプロジェクト】
    Unity2019.1.8f1
    PlayFabSharedSettingsの設定項目RequestType:HttpWebRequest

    【新しいプロジェクト】
    Unity2020.1.0f1
    PlayFabSharedSettingsの設定項目RequestType:UnityWebRequest

    ここに差があるんですよね。

    今回の新しいプロジェクトでは始めに前回プロジェクトの設定と同じようにHttpWebRequestにしてたんですが、以下でログインをすると、なにもコールバックが帰ってこないという問題が発生しました。


    PlayFabClientAPI.LoginWithCustomID(request, OnLoginSuccess, OnLoginError);


    Playfabのダッシュボードのプレイヤーを見ると、そのタイミングでログインされているものの、成功も失敗もコールバックが帰ってこない・・・

    PlayfabSharedSettingsのRequestTypeを変えたところコールバックが帰ってきました。

    この差はなんでしょうか?Unityのバージョンが違うから?



    まぁたぶんですが、HttpWebRequestよりUnityWebRequestの方がいいのかなぁとは思うのですが・・・・・

    Playfab詳しい方この辺なにか言及していたりしませんかね?3種類RequestType選べるけど、特にこれがいいとかあったら教えてください。

    ということで、今日はPlayfab+Unityの設定の謎について聞きたいことを書いてみました!

    Playfabプロの人!教えて!
    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2020.2はInspector上でリストや配列の順番をでデフォルトで変えられる 

    こんにちは。
    大坂です。

    Unity2020.2はInspector上でリストや配列の順番をでデフォルトで変えられるみたいですね。
    ReorderableListがデフォルトになるという感じです。

    public List testList = new List<int>() { 1, 2, 3, 4, 5 };
    public string[] testArray = { "a", "b", "c", "d", "e" };




    地味に便利な機能なのでデフォルトでできるようになったのはいいことですね。
    ちなみにReorderableListの機能を使いたくないときは「[NonReorderable]」を使用します。


    [NonReorderable] public List<int> testList = new List() { 1, 2, 3, 4, 5 };
    [NonReorderable] public string[] testArray = { "a", "b", "c", "d", "e" };



    では今週もこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity2020で追加された地味だけど素敵な機能の紹介!コンソールウインドウで複数行選択できるんだってよ! 

    こんにちは。坂内っす。

    Unity2020で素敵な機能が追加されたので、紹介させて頂きます!

    いや これすごいでしょ



    わかりました?

    コンソールウインドウで、複数行を選択できるようになったんです!

    Unity2020でようやくはいった機能!地味だけどうれしい機能です!

    ちなみに上の状態でコピーすると何が取れるかというと、こういうのが取れます。



    メインゲームスタート
    UnityEngine.Debug:Log(Object)
    Title:ShowStart() (at Assets/Test/Scripts/Title.cs:50)
    UnityEngine.EventSystems.EventSystem:Update() (at C:XXXXXXXXXXXXXXXXXXX/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:376)

    ChangeState([Title]->[Loading])
    UnityEngine.Debug:LogFormat(String, Object[])
    d__11`1:MoveNext() (at Assets/Test/Scripts/State/XXXXXManager.cs:73)
    UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
    StateManager:ChangeState() (at Assets/Test/Scripts/State/XXXXXManager.cs:58)
    Title:ShowStart() (at Assets/Test/Scripts/Title.cs:51)
    UnityEngine.EventSystems.EventSystem:Update() (at C:XXXXXXXXXXXXXXXXXXXXX/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:376)

    オープニングの分岐に入る
    UnityEngine.Debug:Log(Object)
    Loading:OnClickFilter() (at Assets/Test/Scripts/Loading.cs:78)
    UnityEngine.EventSystems.EventSystem:Update() (at C:/XXXXXXXXXXXXXXXXXXXX/PackageManager/BuiltInPackages/com.unity.ugui/Runtime/EventSystem/EventSystem.cs:376)



    という感じで、複数行のやつがちゃんと取れてますね。

    配列のログとか見るのにこれは便利ですね!

    ということで、本日はUnity2020の地味だけどうれしい新機能についてでした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】SuperTextMeshのイベントがすごい使える!!文字列にイベントを設定できるのです! 

    こんにちは。
    10月に入ってしまいましたね。あと3か月弱で今年も終わってしまいます。
    坂内です。

    早いもんですねぇ~ポケガ3はいつできるんでしょうか。
    とりあえず来年の4月頃を目途に頑張っていこうと思います。

    さて、Unityの話になります。

    最近使っているSuperTextMeshというアセットなのですが、なかなか素敵な機能があったので紹介しますね。




    このSuperTextMeshの中で、文字列を順に出すタイミングで、イベントを発生させることができます。

    まずはSuperTextMeshを用意します。




    まずはここまでで、文字を1文字ずつだすことができます。



    次にイベントをキャッチして文字を出すクラスを作ります。

    [STMEvents.cs]

    using UnityEngine;

    public class STMEvents : MonoBehaviour
    {
    [SerializeField] SuperTextMesh lblString;

    public void EventProc(string str, STMTextInfo info) {
    lblString.text = "<c=rainbow><w>" + str;
    }
    }



    <c=rainbow></w>はSuperTextMeshの機能で、レインボー色で派手に文字を見せるタグです。

    EventProcを呼ばれた時に、strでもらった文字をレインボー色で表示するってメソッドです。

    SuperTextMeshのEventを設定します。


    これだけだとイベント自体が発生しません。
    そこで、文字列にイベントを仕込みます。



    ただの文字列ですが、文字列の中に””という文字列を入れることで、イベントとして認識されます。


    何も起きない
    イベント1
    イベント2
    イベント3
    あい うえ お かき くけ こ



    これを、以下のように変更します。


    何も起きない
    <e=イベント1>イベント1</e>
    <e=イベント2>イベント2</e>
    <e=イベント3>イベント3</e>
    <e=あい>あい</e> <e=うえ>うえ</e> <e=お>お</e> <e=かき>かき</e> <e=くけ>くけ</e> <e=こ>こ</e>




    こうすることで、というときに、イベントが発生。
    の度にイベントを発生させることができます。



    また、というイベントでは、範囲内の1文字1文字ごとにイベントを発生させれます。

    文字列を変更

    <e2=event>あいうえおかきくけこ</e2>



    コードもちょっと変更
    [STMEvents.cs]

    using UnityEngine;

    public class STMEvents : MonoBehaviour
    {
    [SerializeField] SuperTextMesh lblString;

    public void EventProc(string str, STMTextInfo info) {
    lblString.text = "<c=rainbow><w>" + info.character;
    }
    }





    こんな感じのことができるSuperTextMeshがおすすめです!




    ということで、今日はこのへんであでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】UnityでPlayerPrefsのデータを消す時 

    こんにちは。
    大坂です。

    UnityでPlayerPrefsのデータ消す時にWindowsだとレジストリエディタ立ち上げて、
    [HKEY_CURRENT_USER]-[Software]-[Unity]-[UnityEditor]-[{会社名}]-[{アプリ名}]を消していたのですが、
    いつからか?Unityに消す機能増えてたんですね。知りませんでした。

    [Edit]-[Clear All PlayerPrefs]ですね。


    これを押すだけで消してくれました。便利ですね!
    では短いですがこの辺でノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0