コード例 #1
0
    public IEnumerator AsyncMethodWithEmojiComplex2WithRelayout()
    {
        var box = AsyncBoxElement.GO(
            null,// bg画像
            () =>
        {
            Debug.Log("ルートがタップされた");
        },
            AsyncTextElement.GO("hannidjkfajfaoooood"),                                                 // テキスト
            AsyncImageElement.GO(null),                                                                 // 画像
            AsyncButtonElement.GO(null, () => { Debug.Log("ボタンがタップされた"); }),
            AsyncTextElement2.GO("hannin is yasu!\U0001F60A this is public problem! goooooooooooooad"), // テキスト
            AsyncImageElement.GO(null),                                                                 // 画像
            AsyncImageElement.GO(null),                                                                 // 画像
            AsyncTextElement3.GO("hannidjkfajfaoooood2")
            );

        // レイアウトに使うクラスを生成する
        var layouter = new BasicAsyncLayouter();

        // コンテンツのサイズをセットする
        var size = new Vector2(600, 100);

        // レイアウトを行う
        var done = false;

        LayouTaro.LayoutAsync <BasicMissingSpriteCache>(
            canvas.transform,
            size,
            box,
            layouter,
            () =>
        {
            LayouTaro.RelayoutWithUpdateAsync <BasicMissingSpriteCache>(
                size,
                box,
                new Dictionary <LTElementType, object> {
                { LTElementType.AsyncText, "hannidjkfajfaoooood" },
                { LTElementType.AsyncText2, "hannin is yasu!\U0001F60A this is public problem! goooooooooooooad" },
                { LTElementType.AsyncText3, "hannidjkfajfaoooood2" },
            },
                layouter,
                () =>
            {
                done = true;
            }
                );
        }
            );

        while (!done)
        {
            yield return(null);
        }

        var rectTrans = box.gameObject.GetComponent <RectTransform>();

        rectTrans.anchoredPosition3D = Vector3.zero;
        rectTrans.localScale         = Vector3.one;

        ScreenCapture.CaptureScreenshot("./images/" + methodName);

        yield break;
    }
コード例 #2
0
    public IEnumerator AsyncMethodWithEmojiComplexWithRelayout()
    {
        var box = AsyncBoxElement.GO(
            null,// bg画像
            () =>
        {
            Debug.Log("ルートがタップされた");
        },
            AsyncTextElement.GO("hannidjkfajfaoooood"),                                                          // テキスト
            AsyncImageElement.GO(null),                                                                          // 画像
            AsyncButtonElement.GO(null, () => { Debug.Log("ボタンがタップされた"); }),
            AsyncTextElement2.GO("hannin is yasu!\U0001F60A\U0001F60B this is public problem! goooooooooooooad") // 59から絵文字を1文字削ると?2文字減る。文字数カウント的にはUTF8と同じ扱いなのか。うーん

            // 事前にサイズを取得、インデックスポイントを送り込んで、取り除いて、という形にするか。
            // どうすればできる?載せ替える四角を成立させればいいか。単純に文字列コンテンツを絵文字でぶった切るか!!これは手な気がする。
            // 他になんかないかな。いけるな、
            // 文字列を最初に渡すときに、N個の絵文字が出た場合、\Uで検索して文字を取り出す。そんで、その文字がどんな画像になるか、っていうのを別途やる。そんで、
            // それぞれの文字を出力して、サイズを割り出し、文字列を再構成する。
            // 再構成した上でレイアウトすればいい。で、それぞれのレイアウト終了時に絵文字の画像を割り当てるか。
            // この方法であれば、まあ、そもそも画像を割り当てるような置換ができれば優勝できるな。

            // 割り出し方に問題が出るかな、例があると嬉しいな。ない。今はない。
            );

        // レイアウトに使うクラスを生成する
        var layouter = new BasicAsyncLayouter();

        // コンテンツのサイズをセットする
        var size = new Vector2(600, 100);

        // レイアウトを行う
        var done = false;

        LayouTaro.LayoutAsync <BasicMissingSpriteCache>(
            canvas.transform,
            size,
            box,
            layouter,
            () =>
        {
            LayouTaro.RelayoutWithUpdateAsync <BasicMissingSpriteCache>(
                size,
                box,
                new Dictionary <LTElementType, object> {
                { LTElementType.AsyncText, "hannidjkfajfaoooood" },
                { LTElementType.AsyncText2, "hannin is yasu!\U0001F60A\U0001F60B this is public problem! goooooooooooooad" }
            },
                layouter,
                () =>
            {
                done = true;
            }
                );
        }
            );

        while (!done)
        {
            yield return(null);
        }

        var rectTrans = box.gameObject.GetComponent <RectTransform>();

        rectTrans.anchoredPosition3D = Vector3.zero;
        rectTrans.localScale         = Vector3.one;

        ScreenCapture.CaptureScreenshot("./images/" + methodName);

        yield break;
    }