さけのさかなのブログ

同人ゲーム開発やってます。Unity使ったりする。

【Unity】NativeList自作

概要

 NativeArray、ECSやJobSystemとセットで紹介されることが多いけど、普通の配列との違いとしてGCに負担をかけないので、使えるところは積極的に使っていけばよさげ。

 そうすると可変長となるNativeListも欲しい。が、未実装。てなわけでここでは最小限のものを自分で作ることにする。正式にリリースされたら差し替えよう。

コード

 さしあたりAddClearとインデクサとイテレータがあれば役には立つだろ、という感じでやった。
 (あまり気の利いた機能をつけるとあとで正式版に差し替えるとき面倒が起こりかねねーな、という逃げの姿勢でもある)

 GC軽減を目的とするためにクラスではなく構造体なんだけど、これだとコピーした際に配列を共有したままCountがずれることがあり得るのでちょっと気を付ける必要がある。まあ、メソッド内で使い捨てる作業用バッファとかに使うなら安全なんじゃないでしょうか。

 Unity2018.2.8f1

gist.github.com

ちなみに

 T where : structと書かれているけど、構造体であれば使えるわけではない。

 どうやら構造体のメンバに参照型が含まれてるとダメっぽくて、実行時にnot blittableだかエラーが出る。

中国語版リリースとセールのこと

f:id:enuenupi:20180828001441p:plain

 MagicScrollTacticsの中国語対応ができました。

 DLSiteやitch.ioなんかは後日更新していきますが、とりあえずSteamでリリース。そしてバージョンアップ記念で一週間の割引セール中です。

 という感じなので、中国語とか知らねー!という人でもとりあえずセールってことで買うのはアリなんではないでしょうか。

store.steampowered.com

 宣伝でした。

コミケお疲れ様でした

 もう2週間経過!はやい。 というわけで冬コミの申し込みも終えました。

 次のゲームも考えたいんだけどちょっと精神的にこう、負担が。というわけで水面下でごにょごにょ考えつつ何はともあれSwitch版MST決めないとな!という感じ。冬コミはどうなるんだ?

今回の出し物について

 今回はSteamキーが印刷されたDLカードというわけで、どこで印刷すればいいのかわかんねえな……からスタート。

 で、おなじみのconcaさんに相談したら注文フォームにはないけど対応できますよ、ということでやっていただきました。

 次回以降も対応していただけるかは知らないけど、ともあれ同じことを考えてるサークルさんは相談はする価値あると思われます。

 シールは自分で貼らなきゃいけないので、数が多いとわりと辛い。でも何かの拍子にカードの裏が見える、みたいなのはあるので完成版には欲しい。

秋葉原のイベント

 あとコミケ2日目に秋葉原ラジオ会館でやってたイベントにも行きました。展示系なので電源使えるし試遊もできる!冷房効いてる!

 けっこう人は来てる感じだったので良いんじゃないでしょうか。次回とかもあれば。

【Unity】GooglePlayで配信したときのつまづき

 備忘録的に書いておきます。

環境

  • Unity2018.2.3f1
  • Google Play Games plugin for Unity 0.9.50
  • UnityAds 2.0.8

つまづき箇所

UnityAdsが表示されない

症状

 Editor上ではちゃんと広告画面(開発用)が出るんだけど、実機だとUnity Ads is not initializedとかでエラーになる。

 アプリ起動してすぐに広告表示を呼び出したときになるっぽいので、初期化に時間がかかってるのかなーと思ってこんな感じでisInitializedを待ってみたけど変化なし。

IEnumerator Start()
{
    while (!Advertisement.isInitialized
        || !Advertisement.IsReady())
    {
        yield return null;
    }
    Advertisement.Show();
}

対応

 仕方なく「広告を出すのは起動してから少し待ってからにする」ことで解決。1秒とか。

PlayGameにログインできない

症状

PlayGamesPlatform.Activate()しようとすると、こんな感じのエラーが出る。

Could not register one or more required Java classes.

対応

 Proguardがだめっぽい。

f:id:enuenupi:20180818071659p:plain

 ので、PublishingSettings.Minifyの項目はNoneにしとく。(ちゃんと設定すれば動くのかもしれないけど……)

まだPlayGameにログインできない

症状

PlayGamesPlatform.Activate()しようとすると、こんな感じのエラーが出る。

Application ID ( 123456789012) must be a numeric value. Please verify that your manifest refers to the correct project ID

対応

 ApplicationIDがまずいとのこと。

Assets\GooglePlayGames\Plugins\Android\GooglePlayGamesManifest.pluginフォルダにあるAndroidManifest.xmlを開いて、修正する

- android:value="\ 123456789012" />
+ android:value="\123456789012" />

 ↑のようにバックスラッシュの隣にある半角スペースを削除してやると正常に動作するようになる。

※ApplicationIDは仮のものです

そんな感じで

 アプリよろしくお願いします(宣伝)

play.google.com

Androidのゲーム公開しました

f:id:enuenupi:20180818054253p:plain

play.google.com

 というわけでGooglePlayで完全無料です。たまに広告が出るのは多めに見て欲しい。

 ちなみに夏コミのやつ(PC向け)はitchで公開してる。

enu.itch.io

 あ、夏コミお疲れさまでした。次はデジゲー博かな?