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

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

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

     

    【ハルシオンブログ】SuperTextMeshで文字色が変わらないっていってたけど、あれはうそだ!かえれました~ 

    こんにちは!坂内っす。

    今日はなぜか暖かい・・・・18度もあるようです!
    この温度差風邪に注意ですよ!

    この間(2月15日)にSuperTextMeshで、文字色が変わらないといった記事を書いたと思います。

    【ハルシオンブログ】UnityのSuperTextMeshを使う際に、途中で文字色を変えたくても変わらないっていう話。
    http://halcyonsystemblog.jp/blog-entry-770.html


    これちゃんと設定すれば文字色を変えることができるようです。

    設定場所はここ。



    SuperTextMeshのTimingにある「Force Animation」ですね。
    こいつにチェックを入れてあげると、変更の度にアニメーションを処理(色を変更など)をしてくれるようです。
    たぶん。

    これでSuperTextMeshも1歩使いやすくなりました!

    ということで、今日も簡単にですがこんな感じで!あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】エスケープ文字を一気に変換したい場合 

    こんにちは。
    大坂です。

    暖かくなったり寒くなったりの季節の変わり目で体調を崩しやすい感じですね。
    皆様気を付けてくださいまし。

    色々なエスケープ文字が入っている場合の置換がめんどくさいときがありますね。
    そんな時は「Regex.Unescape」を使いましょう。

    サポートされているエスケープ文字はAPIのほうで、見てみてください。
    https://docs.microsoft.com/ja-jp/dotnet/api/system.text.regularexpressions.regex.unescape?view=net-5.0

    適当ですが今回はこんな感じで一応やってみました。

    private void Start() {
    string test = "ああああ\\r\\nいいいいい\\tうううう\\nえええええ";
    Debug.Log(Regex.Unescape(test));
    }

    あ、使用するときは「using System.Text.RegularExpressions;」を付けてあげましょう。

    結果

    ちゃんと改行とタブになってますね。

    今週も短いですが、これにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】iOSの審査でGuideline 4.2.3に当たったよ!対応したらちゃんとアプデリリース通りました! 

    こんにちわ。坂内っす。
    みなさんゲーム開発進んでますか?
    うちは微小ながらも進んでいるような気がしなくもない感じです・・・・
    頑張って進めましょう!

    さて、以前こんな記事を書きました。

    【ハルシオンブログ】またビルドでおおはまり!Androidのビルドは通ったけどIOSビルドが・・・
    http://halcyonsystemblog.jp/blog-entry-763.html

    こちらも無事にビルドが通りアップルさんに審査を投げたところ、こんなご返事が‥‥

    「Guideline 4.2.3にぶちあたってるよ!なおしてね!」

    4.2.3とはなんぞやと?

    ここにアップルさんのガイドラインが書いてますね。
    https://developer.apple.com/jp/app-store/review/guidelines/

    これによると

    4.2.3
    (i)Appは独立して機能するものである必要があります。そのAppを実行するために別のAppのインストールを求めることはできません。
    (ii)起動時にAppが正しく機能するよう、バイナリに十分なコンテンツが含まれるようにしてください。
    (iii)初回起動時に正しく機能させるために追加のリソースをダウンロードする必要があるAppでは、ダウンロードする前にその追加データのサイズをユーザーに開示してください。

    とのこと。

    こちらに対応するために、ダウンロードサイズを表示するポップアップを追加しました。

    なんか、以前聞いたことありますね。
    最近ダウンロードサイズを書かないといけなくなったとか(1,2年前から?)

    そして審査にぶちなげ!!


    結果。

    「Guideline 4.2.3にぶちあたってるよ!なおしてね!」


    は?


    色々調べたところ、「ゲーム始まってないのにダウンロードさせるなよ」

    ガイドラインでいう

    (ii)起動時にAppが正しく機能するよう、バイナリに十分なコンテンツが含まれるようにしてください。

    これに当たってるんじゃないかと考え以下のような修正を施しました。

    ポケガ2の初回起動の流れ

    旧)起動>タイトル画面>ダウンロード>チュートリアル(見るか見ないかはユーザに選択させる)>ゲーム開始

    修正)起動>タイトル画面>チュートリアル(強制)>ダウンロード>ゲーム開始

    こんな感じで、初めは必ずチュートリアルをみてからダウンロードする流れに変えました。


    これで審査通ったんです!!

    ってことで、Guideline 4.2.3の対応は。
    この2点ですね。

    ダウンロードサイズの明記とダウンロードタイミング。

    是非はまった方いましたら、こちらを対応してみてくださいませ。


    ってことで、ポケガ1、ポケガ2共に最新で動くはずです!

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】変数の値を別クラスに渡して更新したいときは参照渡しをしよう 

    こんにちは。
    大坂です。

    C#のメソッド引数は基本的に値渡しになるのでメソッド内で値を変えても呼び出し元には影響しないですね。
    呼び出し元にも影響させたい場合は「ref」を使って参照渡しをしましょうというお話。

    こんな感じで使用するだけですね。

    public class Test_1 : MonoBehaviour
    {
    public Test_2 test2;

    private void Start() {
    bool isTest = false;

    test2.Test2(ref isTest);

    Debug.Log(isTest);
    }
    }

    public class Test_2 : MonoBehaviour
    {
    public void Test2(ref bool isTest) {
    isTest = true;
    }
    }

    実行するとちゃんとisTestがTrueになりますね!


    別クラスとかの処理を呼び出して、そのクラスの処理が終わったときに変数の状態を変更したいときとかに便利ですね。
    では今週もこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】UnityのSuperTextMeshを使う際に、途中で文字色を変えたくても変わらないっていう話。 

    こんにちは。坂内です。

    一昨日の夜の地震すごかったですね・・・・
    また地震が続いてしまうと思うと大変すぎです・・・
    福島の皆さんお気をつけてください。

    今日は雨!また大雨の地域もあるようなのでお気をつけくださいませ。


    さて、Unityのお話。
    SuperTextMeshという文字関連のアセットを使ってるのですが、文字色を途中で変えようとしても変わらない現象が・・・

    ちゃんとドキュメントとか見てないのがいけないのかもしれませんw

    uGUIのTextやTextMeshProとかだと「().color = 色」とかで変わるじゃないですか。
    これが効かない。

    「ボタンを押すと、ボタンの中の文字の色を変える」というのを作ってみましたが、こんな感じで色の部分は変わってるのですが、実際の画面の文字色が変わらないという感じになります。

    SuperTextMeshだと色の変え方が別なのかもしれません・・・・

    ただ、カラーピッカーのところを手で変えると文字の色も変わるんですよ・・・・


    これってSuperTextMeshのバグなんでしょうか?

    ってことで、こんなコードを無理やり書いて対応すれば、ちゃんと変わるようになります。


    using UnityEngine;
    using UnityEngine.UI;

    public class Blog20210215 : MonoBehaviour
    {
    [SerializeField] Button btnChangeColor;

    private void Awake() {
    btnChangeColor.onClick.AddListener(OnClickButton);
    }


    public void OnClickButton() {
    SuperTextMesh text = btnChangeColor.transform.GetComponentInChildren();
    text.color = new Color(Random.Range(0f,1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
    text.enabled = false;
    text.enabled = true;
    }
    }



    無駄に text.enable = falseとtrueをしてあげると・・・・・



    ちゃんと変わってくれました!

    って無理やりな方法で対応してみたけど、もっといい方法ありますか?

    なにかわかる方いましたら教えてくださいませ。

    .colorで変えようとしていること自体が違うのかもしれませんorz


    ということで、今日はSuperTextMeshの文字色の変更についてでした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0