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

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

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

     

    【ハルシオンブログ】Unityでの現在時間の取得方法。 

    まだまだ暑い日が・・・昨日からちょっと涼しいですね。
    もう秋になっちゃいますか?さすがに早いか・・・
    温度差で風邪ひかないようにしましょう。
    坂内っす。

    Unityのお話。
    スマホゲーム内で現在時間とか使うことありませんか?

    よくある端末時間をとる方法は簡単です。


    DateTime.Now.ToString("HH:mm")


    こんな感じでいいですよね。

    でも端末時間なので簡単に変更されちゃいます。

    そんな時はサーバとかの時間を使う方法がいいのですが、都度サーバから時間を取りたくありません。

    そんな時はこんな感じでどうでしょう。

    ①ゲーム起動時にサーバから時間を取得
    ②時間を見る時には以下のように時間をゲット

    サーバから取った時間 + new TimeSpan(0, 0, 0, (int)Time.realtimeSinceStartup);


    Time.realtimeSinceStartupは公式によると「ゲーム開始からのリアルタイム(秒)」のようです。

    こんな感じでサーバ時間をベースとした現在時間が取れると思います。

    Unityでの現在時刻の取り方でした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】ビルド番号が欲しいときに便利な「UniBuildNumber」 

    こんにちは。
    大坂です。

    アプリ開発中にテストしているビルド番号を出したいときがありました。
    「UniBuildNumber」を使うと簡単に出せるので紹介です。
    https://github.com/nkjzm/UniBuildNumber

    インストール方法も使い方もURLの先に書いてあるので親切ですね。
    AndroidとiOSで個別で取得できますが、「GetCurrentBuildNumber」でAndroid、iOSを分けて取得しているので、「GetCurrentBuildNumber」を使えば良さそうですかね。

    一応コード。

    string buildNumber = nkjzm.UniBuildNumber.GetCurrentBuildNumber();
    verText.text = $"var:{buildNumber}";


    これだけでちゃんとAndroid、iOSそれぞれのビルド番号を表示できました。便利ですね!
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unityパーティクルをすでに再生されていた体で再生する方法(?) 

    こんにちは。坂内っす。
    今日は肩こりがひどいっす。いつもひどいけど今日は肩が痛い。
    ぐるんぐるん回しとくか。

    Unityのパーティクルのお話。
    パーティクルの途中から再生するって意外と大事だと思うのですが、今まで使ってませんでした。

    途中から再生ってどういうときに使うの?

    例えばこんな時。

    シーン1でボタンを押すとシーン2に遷移する。
    シーン2では雨のパーティクルが動いている。



    こんな感じだとシーンが遷移した後にパーティクルが動き出して「雨が降り始める」という動きになってしまいます。

    「パーティクルを途中から再生」というと語弊があるかもしれませんが、すでにパーティクルが動いていた体で再生を開始するみたいな感じの動きをすれば、シーン遷移時に雨がすでに降っているという状況を作れます。

    ParticleSystemについている「Prewarm」にチェックを入れておきます。



    公式のドキュメントによると「Prewarm 有効にすると、システムはまるで、すでにサイクルを 1 回完了したかのように初期化されます ( Looping が有効であるときにのみ、動作します)」
    ということで、1ループした状態からパーティクルが動き出すようですね。

    Prewarmにチェックを入れて動かしてみましょう。



    と、こんな感じでシーン移動したときにはすでに雨が降っている状況を作ることができます。


    ということで、パーティクルを途中から再生する方法についてでした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】なんかUnityWebRequestでエラーが出でたとき 

    こんにちは。
    大坂です。

    UnityWebRequestでこんなエラーが出た時。

    A Native Collection has not been disposed, resulting in a memory leak. Allocated from:Unity.Collections.NativeArray`1:.ctor(Byte[], Allocator)
    UnityEngine.Networking.UploadHandlerRaw:.ctor(Byte[])


    メモリの開放しなかったのでメモリーリークしてる感じですね。
    Disposeで閉じるか、処理しているところusingで囲むといいみたいです。

    Disposeで閉じる。

    var www = new UnityWebRequest(url);

    // 処理

    www.Dispose();


    usingで囲む

    using (var www = new UnityWebRequest(url))
    {
    // 処理
    }


    何かのお役に立てば!
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】東京ゲームダンジョンちょっといってきたよ。(ネタ無し 

    久しぶりにゲームのイベント行ってきましたよ。坂内っす。

    8/7 Bitsummitと、東京ゲームダンジョンが開催されました。
    コロナ前は毎年Bitsummitいってたんだけど、さすがにここ2年は行ってなかったですね。

    今回は新しいイベントということで東京ゲームダンジョンいってきました。

    だだだっと写真張り付け。













    ええ。あんまり写真撮ってなかったっすね。
    まぁいつも通り知り合いに挨拶周りがメインです。

    腹筋するとレベルが上がるとかいう面白いゲームを作ってる方がいたり・・・・
    色々なゲームがありましたね!

    ほんとみなさん色々すごいものをお作りしてますね。
    まじでうちも早くゲーム出さないと・・・・・

    というか、今回はネタ探しのためにいったんですが、思うようなゲームがなかったです。
    ネタ探しちゃんとしないと・・・

    ということで、新しいインディーゲームのイベント、東京ゲームダンジョンに行ってきたよという報告でした。

    あでゅ~ノシ

    Category: その他日記

    tb 0 : cm 0   

    【ハルシオンブログ】Gitに上がっているアセットはURLでインストールできる 

    こんにちは。
    大坂です。

    頭のいい人たちが作ってくれたアセットをダウンロードして自分のプロジェクトにインストールすることはよくあると思いますが、今までZipでダウンロードして、解凍、プロジェクトに入れるという手順を踏んでいたのですが、PackageManagerの機能で、GitのURLでインストールできるんですね。

    PackageManagerのWindowで「+」ボタン押して、「Add pacakage from git URL」を選んで、URLを入力してAddボタンを押すとできます。




    公式にも説明があるので詳しくはそちらを見てもらえれば。
    Git URL からのインストール

    こちらの方法でアセットをインストールすると、Projectの「Packages」の方に追加されるので、「Assets」がごちゃごちゃするのを少しだけ解消できるところが便利ですね。

    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】UnityのuGUIでトランジション 画面遷移とかを少しリッチに! 

    こんにちは。毎日暑いっすね。
    トイレいくだけで汗かきそうです。坂内っす。


    Unityでトランジションをする方法を過去に書いたのですが、今はまたちょっと違うやり方をやっているので、ちょっと書いておきます。

    【Unity】テラシュールさんのuGUI対応トランジションがうまく動かず、某めるくまさんが解決方法考えてくれたので、自分の手柄としてブログにかいときますね!

    上記方法でやった場合は、ちょっと画像がジャギっちゃうらしい??

    さて、とても古い記事ですが、今現在もトランジション自体は使っています。
    コードも上記とちょっと違うだけで、ふつうに使えてますので、紹介です。

    つばきさんのこちらのFadeCamera2を使います。
    https://github.com/tsubaki/FadeCamera2

    実際に使うのはこの中のほんの一部ですが。

    まずはこんな感じの土台を作ります。



    ここにトランジションしたいサイズのImageオブジェクトを置きます。



    上記で生成したオブジェクトからImageコンポーネントを外し、FadeImageコンポーネントをつけます。



    この状態で、FadeImageのCutout Rangeを動かすとトランジションが動くのがわかります。



    あとはFadeImageのMaskTextureにルール画像をつければ、好きな感じのトランジションが出来上がります。




    それと、FadeImageのMaterialに「UI-Fade-Cutout」がついていますが、これを「UI-Mask」に変更すると、ジャギってるのがなくなりアルファ値が反映するようになります。



    もちろん画面全体の遷移の時は全画面に上記処理を行えばいいですよね。

    Fadeの中に「FadeCanvas」というのがあるので、それ使えば早そうですね。



    デフォルトだとFadeImageのMaterialに「UI-Fade-Alpha」が入ってますが、うまく動かないので「UI-Fade-Cutout」か「UI-Mask」にしてあげましょう。

    あとはルール画像を決めて、FadeImageのColorを変えればトランジションの色も変わるので、変えたりするとこんな感じに動くようになりました。



    という感じでトランジションが動きます。

    ゲームの画面遷移とかで使うとちょっとリッチな感じになりますよね。

    是非使ってみてください。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0