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

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

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

     

    【ハルシオンUnityブログ】Enumをリスト化する 

    こんにちは。
    大坂です。

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

    PV:


    Enumをリスト化したかった時のお話。
    EnumのリストとEnumをstringのリストに変換する方法を紹介。


    public enum TestEnum
    {
    Test_1,
    Test_2,
    Test_3,
    Test_4,
    Test_5,
    Test_6,
    }

    public void Start()
    {
    // enum の TestEnum をリストに変換して取得
    List<TestEnum> enumList = Enum.GetValues(typeof(TestEnum)).Cast<TestEnum>().ToList();

    // enum の TestEnum を string のリストに変換して取得
    List<string> stringList = new List<string>(Enum.GetNames(typeof(TestEnum)));
    }


    デバッグ機能とかを作るときにリストにしたかったことがあったので、変換方法の紹介でした。
    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】C#(Unity)でコードのファイル分割をする方法。OS毎にファイルを分けても同じ処理をすることができるよ 

    こんにちは。坂内っす。

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

    PV:


    Unityでコードを書いているうち、1つのクラスが長くなったりした場合ファイルを分割することができます。
    publicとclassの間に「partial」を書くことで行うことができます。

    [PartialA.cs]

    using UnityEngine;

    public partial class Partial : MonoBehaviour
    {
    public void TestA() {

    }
    }



    [PartialB.cs]

    using UnityEngine;

    public partial class Partial : MonoBehaviour
    {
    public void TestB() {

    }
    }



    こんな感じで、ファイルはPartialA.csとPartialB.csの2つですが、クラスとしては、Partialというクラス1つとして使用できます。

    これが普通のファイル分割の方法なんですが、プラットフォーム依存コンパイルを指定して分割も可能のようです。

    [TestAndroid.cs]

    #if UNITY_ANDROID
    using UnityEngine;

    public class Test : MonoBehaviour
    {
    public void View() {

    }
    }
    #endif



    [TestIOS.cs]

    #if UNITY_IOS
    using UnityEngine;

    public class Test : MonoBehaviour
    {
    public void View() {

    }
    }
    #endif



    こうすることで、同じViewというメソッドの処理をOS毎に分けることができそうです。
    (追うのが大変になるのでちゃんとコメントにこの旨を書いておくことをおすすめします)


    ということで、コードのファイル分割の話でした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】一部海外でのfloat等小数点区切り文字が,(カンマ)で問題がでてしまう件 

    こんにちは。坂内っす。
    ご機嫌麗しゅう?

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

    PV:


    Unityで扱うfloatって「0.3」とか「122.22」とかって数値が入るじゃないですか。
    これ、一部の海外だと「0,3」や「122,22」ってなっちゃうの知ってます?

    [Oracleの区切り文字に関するガイド]
    https://docs.oracle.com/cd/E19455-01/806-2727/overview-9/index.html#:~:text=%E3%82%A4%E3%82%AE%E3%83%AA%E3%82%B9%E3%81%A8%E7%B1%B3%E5%9B%BD%E3%81%A7%E3%81%AF%E5%B0%8F%E6%95%B0,%E5%8C%BA%E5%88%87%E3%81%A3%E3%81%9F%E3%82%8A%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82

    こんな感じでフランス式の国では、小数点が,(カンマ)で区切られるようです。

    Unityでもこれは対応されており、以下のようなコードを端末にビルドして、端末の言語設定を変えることで確認できます。

    [Blog1120.cs]

    using TMPro;
    using UnityEngine;

    public class Blog1120 : MonoBehaviour
    {
    [SerializeField] TMP_Text lbl1;
    [SerializeField] TMP_Text lbl2;

    void Start()
    {
    float flt = 0.3f;
    lbl1.text = flt.ToString();

    lbl2.text = (flt * 2f).ToString();
    }

    }



    日本語設定


    フランス語設定



    こんな感じ。
    ちゃんカンマの小数点でも計算はしてくれますので問題はありません。

    しかし、こんなコードが混ざっていると問題がおきます。


    using TMPro;
    using UnityEngine;

    public class Blog1120 : MonoBehaviour
    {
    [SerializeField] TMP_Text lbl1;
    [SerializeField] TMP_Text lbl2;

    void Start()
    {
    float flt = 0.3f;
    lbl1.text = flt.ToString();

    // 小数点のカンマ以降を取得
    string[] ary = flt.ToString().Split(".");
    lbl2.text = ary[1];
    }
    }



    こんなことをした場合、結果が変わってきます。

    日本語設定



    フランス語設定



    フランス語のほうは以下のエラーが出てしまいます。

    IndexOutOfRangeException: Index was outside the bounds of the array.
    at Blog1120.Start () [0x0002b] in :0

    ドットがないため、ary[0]に「0,3」が入り、ary[1]には何も入らない状況になります。

    対応策としては、Splitなどを複数charで行うことでできそうです。

    string[] ary = flt.ToString().Split(new char[] {'.', ','});

    ということで、一部海外(フランス式)のfloatやdoubleでの小数点の区切り文字問題の対応でした。


    あでゅ~ノシ

    Category: 開発日記(Unity)

    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   

    【ハルシオンブログ】デジゲー2023いってきたよ!いつものごとくお邪魔したブースの写真のせるだけの回 

    こんにちは!坂内っす。


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

    PV:


    11月12日はデジゲー博2023でした。
    https://digigame-expo.org/

    同人・インディー デジタルゲーム展示・即売会です。


    今回も遊びにいってきましたよ!



    案の定写真並べるだけのブログです!

    【Cactus Gardernさん】
    紅香さんのブース。
    これもうリリースできちゃうんじゃ?できあがってますよね!


    【ゾウノアシゲームズさん】
    ともぞうPさんのブース。豆腐を操作するアクションゲーム!


    【タツヤゲームさん】
    とりあえずそのまま写真アップ!



    【Mottoさん】
    対戦クロスワードゲームがありました!楽しいですよね!


    【椎葉さん】
    なつかしのレコード盤が売ってました!


    【ZephyrStudioさん】
    モン娘グラディエーターと新作のホラーADVの展示でした。
    キャラかわいいっすよね!


    【ノナプルナインさん】
    いつものようにすごい豪華なノナプルさんのブース。
    グッズとかもすごくよくできてる!


    【6th Sense Gamesさん】
    イノウノカルテを開発している6th sense gamesさんのブース。
    あと少しで完成?なのか!?
    とても面白そうな作品。


    【Room6さん】
    Rouge with Deadでぶいぶい言わせているRoom6さんのブースですね。

    めっちゃカメラ目線頂きましたが、ぼかしときますね!


    【G-Modeさん】
    OUや空気読みで有名なG-MODEさんのブース。
    OUを全面に出してますね!



    ということで、今回も元気にデジゲーいってまいりました。
    来年は80人の飲み会したいですね!

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0