技術と趣味の亜空間

主にゲームプログラミングとその周辺に関する記事を不定期で上げていきます

ネイティブアプリのAPI更新対応備忘録 〜iOS編〜

Apple Logo

概要

qiita.com

↑を対応しつつ、その他 deprecated なコードの修正対応をメモがてら記載していく。
なお、修正前の時点で Project の iOS Deployment Target は iOS8 だった。
今回はそれを iOS11 まで引き上げることとする。というのも、WKWebView自体は iOS8からサポートされているが、 iOS10までと11以降でほぼ別物のため、保守管理の観点からiOS11以降に限定させた。
対応時のXcodeバージョン: 11.5

また、この記事は公開後も更新があった場合は追記する予定です。

続きを読む

BotKitでRedmineの本日期日のチケットを毎日Slackに流す

概要

今回はSlack のボットを作るためのフレームワークBotkit」を利用してRedmineの本日期日のチケットを毎日Slackに流してみようと思います。 このBotはサーバーで稼働させるため、herokuの無料プランで動かします。

github.com

jp.heroku.com

続きを読む

OneSignal の Unity SDK が Unity 2018 以降だとビルドで失敗するので修正した話

概要

OneSginal という超便利なプッシュ通知サービスがUnityで導入できますが、
私のプロジェクトだとiOSAndroidのビルドどちらも失敗してしまいました。
今回はそれを修正してみました。

onesignal.com

開発環境

  • OneSignal-Unity-SDK 2.7.8 release
  • Unity 2018.3.0b12
  • Xcode Version 10.1 (10B61)

iOSAndroid両方対応します。

続きを読む

Unityで .NET 4.x にするとVisual Studio Code のC#拡張が機能しなくなったので修正した話

概要

MacのUnityで .NET 4.x 系に切り替えたところ、Visual Studio Code (以下、VSCode) のC#拡張プラグイン1が機能しなくなったので、再び利用できるようにするための修正方法を備忘録も兼ねて記載します。

修正方法

  1. monoのバージョン5.8以上をインストールする。HomeBrewのコマンド brew install mono でインストールするのがおすすめです
  2. VSCodeのユーザー設定ファイルで、omnisharpを強制的にグローバルなmonoを参照するようにします。
    "omnisharp.useGlobalMono": "always"
    すると以下のようなログがでると思います
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
    Located 2 MSBuild instance(s)
        1: Mono 15.0 - "/usr/local/lib/mono/msbuild/15.0/bin"
        2: StandAlone 15.0 - "/Users/x/vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin"

[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
    Registered MSBuild instance: Mono 15.0 - "/usr/local/lib/mono/msbuild/15.0/bin"

基本的には上記でOKですが、それでもエラーが発生する場合は間違ったmono(古いやつとか)を参照している可能性があります。この問題はユーザー設定ファイルにて、omnisharpが参照するmonoのパスを指定してあげれば解決します。

"omnisharp.monoPath": "/usr/local/" または "omnisharp.monoPath": "/usr/local/Cellar/mono/5.18.0.255/" のようにバージョンで直接指定します。

iPhoneX以降のセーフエリアの見栄えをエディタ上で、かつ実行せずに確認・調整できる便利クラスを作成しました

概要

UIがiPhoneX以降のセーフエリア(Safe Area)内にちゃんと収まるような調整クラスを作成しました。
とはいえ毎回端末で確認するのも嫌だったので、エディタ上で実行せずとも直接確認できる機能も追加してみました。(実行中に適応する機能もあります)
こんな感じです↓ 縦向き・横向きどちらも対応してます。
f:id:Goropocha:20200326002846g:plain
f:id:Goropocha:20200326002848g:plain

対応端末

iPhone X, iPhone XS, iPhone XR, iPhone XS Max, iPad Pro 11, iPad Pro 12.3 (3rd generation)

続きを読む

.NET 4.6以降にて列挙型をキーとしたDictionaryは普通に速い

概要

列挙型(Enum)をキーとした辞書の実行速度に関して、これまでは遅いのでやめておくのが通説でしたが、 .NET4.6以降はかなり早くなっているとのことなので実際に調査してみました。

続きを読む

ドローコールを発生させない透明ボタンを作るための便利クラスを作ってみた

追記 2019.7.23

Unityバージョン2018.2以降だと本記事のスクリプトを使用しなくてもドローコールを発生させない処理ができるようになっております。
やり方は以下の通り:

  1. 透明ボタン用のImageコンポーネントを作成
  2. アルファ値を0にする
  3. 同じゲームオブジェクトの Canvas Renderer コンポーネントにある「Cull Transparent Mesh」にチェックを入れる

これでドローコールが発生しない透明ボタンが作成できます。
試しにOverdrawでシーンを確認してみると、描画されていないのがわかると思います。

続きを読む