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やらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】Unity2017(.1~.2系)InputFieldで日本語が使えないんだけど?って時の対応方法。Unityさん早く直して! 

    こんにちは坂内っす。
    もう来週末デジゲーですね!
    ブースだす皆さんは追い込まれてる感じですかね!
    頑張ってくださいませ!

    先日土曜日に「Indie Games Festival 2018 - キックオフイベント」がありました。
    凄い行きたかった!
    残念ながらいけませんでした orz
    ポケガ1に以下の対応してたらいけませんでしたよ…


    ってことで、Unityの話。

    Unity2017.1.1のInputFieldで日本語が使えないって話。

    あんまりInputFieldって使わないからあれですよね…

    キャラの名前つけたり色々とInputFieldは使われます。
    ただ、現在のUnity最新バージョン(2017.2)やUnity2017.1系などで、「InputFieldで日本語が使えないバグ」がある模様。

    これの対応方法はこちら。
    Qiitaに乗ってました。
    [Unity 2017.x+InputField+Androidで日本語入力ができない問題への対策]
    https://qiita.com/Gok/items/35329c717203e86774f0

    URLのInputFieldButton.csを作成し、以下のようにInputFieldの子供にこのInputFieldButton.csを付けたオブジェクトを作成してあげる感じです。
    Button継承なのでImageが必要そう。
    その際Imageの透過を100%にしてあげないとInputFieldが見えなくなってしまいます。





    とりあえずこれで応急措置はできそうですが、Unityさんここ早く直してください!!

    ってことであでゅ~ノシ


    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】久しぶりにAdHocのipaファイルを出力した後にiTunesが変わってて何これ?ってはなった話 

    こんにちは。
    大坂です。

    先週台風で今週も台風が発生していますね。
    今のところ本州に直撃しなさそうなルートですが、近づいてきたときに雨風が強くなると嫌ですね…。

    さて全くネタがなかったので適当なヤツ(毎回

    ちょっとiOSのアプリの更新をするのに久々にコンパイルやらAdHoc用のipaファイルを出力したりして、
    iTunesのデバイス画面開いてアプリケーションの項目がなくてあれ??ってしました…。

    iTunesのバージョンが上がって変わったようですね。
    まぁ大体皆さん知っているんでしょうが一応どうやったらインストールできるかって話です。


    この画像の赤枠の辺りにipaファイルをドラッグアンドドロップするだけです。

    なんでアプリケーションの項目をなくしたのかは謎ですが、調べたりしてちょっと時間を取られたのでメモとして残しておきます。

    本当に書くことがないのでこれだけですよ!

    ではまたノシ

    Category: その他日記

    tb 0 : cm 0   

    【ハルシオンブログ】ポケガ1をUnity5.3からUnity2017にしたら動かすの面倒だったよって話。他 

    おはようございます( ˘ω˘)スヤァ
    台風21号のおかげで寝不足です。坂内です。

    電車止まったり遅れたりで皆さん大変そうです。
    頑張って下さいませ。

    来週土曜日は「Indie Games Festival 2018 - キックオフイベント」に行ってきます。
    https://events.withgoogle.com/indie-games-festival-2018-1/

    楽しみですね!

    そうそう!ポケットガール1にデータ引き継ぎシステム実装しましたよ!
    2年越しの機能実装です。今回はDBじゃなくて、NCMBを使っております。
    今日か明日には最新版アプデしますね。

    え?ゲーム部分で新しい機能ないのかって?
    えぇ特に…
    そこはポケガ3に期待しておいてください。

    そういえば、ポケガ1が今までUnity5.3.4で動いてたんですが、今回Unity2017.1にしてみました。
    色々と移行で問題がありましたが、その中で一番修正に手間取ったのがこれ。

    「ボタンが押せない問題」

    ポップアップからなにからInstantiateをしたものが全て"触れない"状態になってました。

    原因はlocalScaleのZが"0"になっていたこと。

    これ、Unity5.3だとScale.zが0でも動いてたんですよね。
    たぶんこの時、2DだからってあえてInstantiateした後にlocalScale = Vector2.one;とかやってて、Zが0にしてました。
    この辺全部直して、SetParentも第2引数にfalse追加したりと色々と手間取りました。(ポップアップやらなにやらInstantiateしてるのが多かったため)
    あとは全体的にシーン移動をSceneManager.LoadSceneに変えたり…

    ちょこちょことは言わないですが、Unity新しくなったら新しいバージョンに合わせていかないと、ルナティックダンジョンみたいに触れなくなって朽ちていきますね…

    あ、発見!
    http://halcyonsystemblog.blog.fc2.com/blog-entry-205.html

    2015年5月の記事で書いてますね。
       transform.SetParent(GameObject.Find("親オブジェクト名").transform);
       transform.localScale = Vector2.one;
       transform.localPosition = Vector2.zero;


    だめ!!

    これ絶対だめ!!

    やるなら
    transform.localScale = Vector3.one;

    にしましょう!

    というか、今なら普通に
    obj.transform.SetParent(親オブジェクトのtransform,false); 


    でいいっすからね。というかこれでやってますし。

    古いプロジェクト触るのめんどいですね!

    ということで、本日はこれまで!あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】System.DateTime.Nowを使っててあれ??てなったよ・・・ 

    こんにちは。
    大坂です。

    ずっと天気が悪いですね。
    あまり出かけないからどうでもいいといえばどうでもいいんですが…。

    さて今週もちょっとしたネタですね。
    タイトルの通り「System.DateTime.Now」を使ってて嵌ったお話です。

    現象としては「System.DateTime.Now」を使ってるのに端末で見ると「System.DateTime.UtcNow」と同じ時間が取れてる!?
    って現象です。

    Unity上で見ると大丈夫なんですよね。
    ということでUnityで出したログ。


    はい、普通に「System.DateTime.Now」が「System.DateTime.UtcNow」の+9:00されてますね。
    続いて端末(Android)にインストールして出したログ。


    「System.DateTime.Now」と「System.DateTime.UtcNow」が一緒ですね。
    ログはとっていませんがiOSでも同じ結果になります。

    解決策というかなんというか。
    ScriptingRuntimeVersionが「Experimenta」で実機に移すと同じになるようでした。
    ということで、「Stable」に変更して再確認。
    ここの部分ですね。


    変更して、一応Unityのログをもう一回

    まぁ大丈夫ですよね。

    続いて端末のログ。


    ちゃんと「System.DateTime.Now」が「System.DateTime.UtcNow」の+9:00されましたね。
    作ってるゲームで上に時間を出してるんですが、そこの時間がUTCとなっててちょっと嵌りましたとさ。

    ではでは、今日もこの辺でノシ

    Category: Androidアプリ紹介

    tb 0 : cm 0   

    【ハルシオンブログ】Unityでシーンを移動するとオブジェクトが消えちゃうからデータの引き継ぎどうするの!? 

    こんにちは!坂内っす!
    一気に寒くなってきましたね!
    朝のコーヒーがついにホットコーヒーになりました。


    さて、Unityの話題です。

    シーンを跨いでデータ等を保持したい場合、皆さんどうやってますか?

    いちいちPlayerPrefで保存とかしてたら大変ですよね。

    クラスにデータを入れて持っていきましょ。

    なんでもいいですが、データを引き回すクラスを作成し、コンポーネントとしてオブジェクトにつけておきます。

    【DataManager.cs】
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;

    public class DataManager : MonoBehaviour {

    public int intAAA;
    public string strAAA;

    void Start () {
    DontDestroyOnLoad(this);
    }

    void Update () {

    }
    }


    適当にこんな感じで作ってみました。

    こいつを空のオブジェクトにつけます。

    肝となるのは

    DontDestroyOnLoad(this);

    シーンを跨ぐと、すべてのオブジェクトが消えてしまうが、DontDestroyOnLoadがあるオブジェクトは消えません。

    これでゲーム中で使うデータをシーン間で共有できます。

    注意することは、以下です。
    ●Aシーンにこのオブジェクトを置いておく。
    ●Aシーン>Bシーン>Aシーンと遷移。
    この時Aシーンの上記DontDestroyOnLoadのあるオブジェクトが複数作られてしまうので、その対応を入れましょう。

    気が付いたら同じオブジェクトが複数できてしまいます。

    ということで、本日はデータをシーン間で引き継ぐ方法でした!あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】久々にMacとか触ってUnityでコンパイル通らなねぇよってなった話 

    こんにちは。
    大坂です。

    10月なのにこのところ暑いですね。
    先週は寒いって書いた気がしますが…
    明日からまた寒いらしいので体調にはお気を付けを。

    さてはて、今週もちょっとしたネタですね。
    今作ってるアプリを一回iOSでコンパイルしておこうかと試してUnityでコンパイル通らなかって話ですね。
    まぁ原因は単純な話だったんですけどね。

    とりあえず見たことないこんな感じのエラーが出ました。超一部ですけど。
    stdout:
    Fatal error in Unity CIL Linker
    Mono.Cecil.ResolutionException: Failed to resolve UnityEngine.XR.XRSettings

    ちょっとほかにも出てたログがあってそっちで検索してたら同じような現象のがなく、
    こっちのログで調べたらわかったよってことなので、ログはこっちだけ。

    結果、Unity2017.1.0からUnity2017.1.1にアップデートした後にIAPを更新してなかったのが原因でした。
    まぁそういえば、Unityでたまにアップデートしろよって言われてた気がします(ぇ

    ServicesのIN-APP PURCHASINGでアップデートしてあげれば解決。


    ここでアップデートボタン押して新しいプラグインをインポートすればOKでした。
    単純な話なんですけど、こういうのでたまに嵌るので今週もメモ的なお話でした。

    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】ネタがないので小ネタを二つ。デジゲー飲み会まだ空いてますよー! 

    こんにちは、坂内っす。

    11月12日はデジゲー博です。
    http://digigame-expo.org/
    秋葉UDXでの面白いイベントが待っております。

    そして、デジゲーの後は飲みましょう!
    https://atnd.org/events/91621?k=fea160c5c144975c364241ea569cffdd
    まだ空きありますので、是非ご参加ください。

    さて、Unityのお話。

    uGUIとParticleの表示順の話です。

    今までもUI周りとParticleの表示順ががががががが ってことがあったんですが、今はすごく簡単にパーティクルをUIの表にだせるんですね。
    Positionの"Z"を調整か、Rendererの"Order in Layer"の調整で、いくらでもUIの表にParticle出せます。

    ・・・

    ・・


    ・・・・・・


    短いのでもう一つ。

    絵同士の表示順について。



    Canvasの子供としてimg01、img02が上図のように並んでいる場合、img02が表に来てしまいます。
    もちろん下図のように並び替えを変えれば、表にくる絵が変わりますよね。



    表示順を変える方法は2つあります。
    ①【uGUIのImageを使う場合】
    1つは上記のようにuGUIのImageを使った場合に以下のコードで並び順を変えることができます。
    Transform.SetSiblingIndex(x)
    これは以前にうちのブログでも書かれていましたね。
    http://halcyonsystemblog.blog.fc2.com/blog-entry-266.html

    ②【Spriteを使う場合】
    2つ目はSpriteを使った場合、Order in Layerの値を変更する方法。


    OrderInLayerの値が大きい方が表に来ます。

    ということで、今日はここまでにしておいてやる!

    あでゅ~ノシ 


    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】コルーチン使っててちょっと嵌ったのでメモ 

    こんにちは。
    大坂です。

    急に寒くなってきましたね。
    知り合いでも風邪をひいてる人がちらほら…。
    僕も鼻水と咳が止まりませんが…まぁ気にしないでおきます。
    皆様体調にはお気を付けを。

    さて、コルーチンを呼び出しまくってて動かないなーってなってちょっと嵌ったのでメモ的なヤツ。
    結論から言うと呼び出し元のオブジェクト消したら処理が途中で止まったってだけですが…

    こんな感じで書いたらダメだったよってやつ。
    public class BlogTestPopup : MonoBehaviour {

    public void CallBlogTestCorutine() {
    StartCoroutine(GameObject.Find("BlogTest").GetComponent().BlogTestCoroutine());
    Destroy(gameObject);
    }
    }

    ポップアップで他のオブジェクトのコルーチンを呼び出してそのままポップアップオブジェクトを削除した。

    呼び出された方。
    public class BlogTest : MonoBehaviour {
    public IEnumerator BlogTestCoroutine() {
    Debug.Log("BlogTestCoroutine開始");
    yield return StartCoroutine(BlogTestCoroutine_2());
    Debug.Log("BlogTestCoroutine終了");
    }

    public IEnumerator BlogTestCoroutine_2() {
    Debug.Log("BlogTestCoroutine_2開始");
    yield return null;
    Debug.Log("BlogTestCoroutine_2終了");
    }

    コルーチンからさらにコールチンを呼び出して2個目のコルーチンが終わってさらに処理をしたい。

    実行ログ


    最初に呼ばれたコルーチンの終了が出てませんね。
    対策は一応こんな感じ。
    ポップアップからは呼び出す先のコルーチンを実行するメソッドを呼ぶようにして、メソッドからコルーチンを呼ぶように変更。
    動いたのでまぁこれでいいんでしょうかね…。

    たいして変わりませんが、ポップアップのコード
    public class BlogTestPopup : MonoBehaviour {
    public void CallBlogTestMethod() {
    GameObject.Find("BlogTest").GetComponent().BlogTestMethod();
    Destroy(gameObject);
    }
    }


    呼び出された方
    public class BlogTest : MonoBehaviour {
    public void BlogTestMethod() {
    StartCoroutine(BlogTestCoroutine());
    }

    public IEnumerator BlogTestCoroutine() {
    Debug.Log("BlogTestCoroutine開始");
    yield return StartCoroutine(BlogTestCoroutine_2());
    Debug.Log("BlogTestCoroutine終了");
    }

    public IEnumerator BlogTestCoroutine_2() {
    Debug.Log("BlogTestCoroutine_2開始");
    yield return null;
    Debug.Log("BlogTestCoroutine_2終了");
    }


    こちらも実行ログ


    これで1個目のコルーチンの終了までログがちゃんと出てますね。
    ということで、こんなことをする人がいるのかはよくわかりませんが、想定通り動くようになったのでメモです。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 2   

    ポケガ1は勝手にやってくれたようだけど、ポケガ2中国語対応しちゃうよ? 

    こんにちは!坂内っす。
    10月になってだいぶ涼しくなってきました。
    風邪をひかないようにお気を付けください。

    そういえば、先月くらいにこんな記事がありました。
    http://fumi-md.hatenablog.com/entry/2017/09/08/221032

    スマホアプリ「7年後で待ってる」を制作したふみさんの記事。

    ぷぷぷ これ2年前にうちのアプリを勝手にぱくった会社じゃん!

    俺もこの時こんな記事かきましたね。
    http://halcyonsystemblog.blog.fc2.com/blog-entry-231.html


    って、他人ごととして見てたら…

    あ、メールきました(笑)

    _人人人人人人人人人人人人人人人人人人人_
    > 中国語版ローカライズの許可のお願い <
     ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄


    あれー?
    ポケガ1やっちゃってくれたのに、性懲りもなく連絡してくるとかっ面白いやんけ!!

    どれどれジャブでも打ってやるか

    「以前、2015年8月頃に、●●●様が弊社「ポケットガール~永久の錬金術師~」を連絡もなくローカライズした際には広告を勝手にすり替えておりましたが、今回の案件ではそのようなことは絶対にないでしょうか?」
    別に怒ってるわけじゃないんすけどね。

    その返信としては平謝りが帰ってきました。

    このへんふみさんの記事と同じですね。

    まぁせっかくなんで、お願いすることにしました。

    だって、断っても「勝手にすることができる」のであれば、やってもらって翻訳データもらった方がうちとしてもプラスじゃない?という理屈。

    まぁ野良ストアは課金ができないので、その辺どうするとか、色々と問題があるのでその辺対応して中国用のアプリを別途用意する感じになりそうです。

    リリースできましたら、その辺の話(どういう対応をしたか、売上どうだとか)とかをまた書きたいと思います。

    ということで、あでゅ~ノシ

    Category: その他日記

    tb 0 : cm 0