【第10回】RPGツクールMZでスマホゲームを作る!!(Optional Chaining)
どうも、椿田です。
私事ですがGoogle Playにて新作のスマホゲームをリーリスしました♪
無料でプレイできますので、よろしければ遊んでみてください♪
さて、今回はRPGツクールMZでスマホ向けゲームを開発している時に陥ったとあるエラーについて書かせていただきます。
(かなりマニアックな内容ですので、今回は、エラーの原因と解消方法を簡単に書かせていただきます。)
1.Optional Chainingを使って書かれたプラグインで発生するエラー
RPGツクールMZのプラグインは、javascriptを用いて書かれていますが、コードの書き方で、以下のように?.を用いたOptional Chaining(オプショナルチェーン)と呼ばれる書き方があります。
const name= boy?.name;
この例において、?.をつかってboyオブジェクトのnameプロパティを参照した時、nameプロパティがnullやundefinedであったとしてもエラーにはならず、nameプロパティはnullまたはundefinedでしたと参照することができる書き方です(詳しく知りたい方はググってください)。
この記事の結論を申しますと、古いiOSでOptional Chainingを使ったプラグインが実行されると以下のようなエラーが発生します。
SyntaxError: Unexpected token '.'
または、
SyntaxError: Unexpected token '?'
古いiOSではOptional Chainingに対応していないため、この書き方を理解できず、文法エラーとして返されます。(もしかしたら、古いAndoridでも発生するかもしれません)
詳しい対応表の参考として、以下のサイトを共有しておきます。
このサイトによりますと、Optional Chainingが対応するiOSのバージョンは13.4からになることがわかります。
2.エラーへの対応策
一番簡単な対応策は、ゲームをプレイするiOSの最小バージョンを13.4以上に設定してビルドすることです。
ツクールのプラグインを修正するやり方もありますが、僕のようなプラグインを神様がくれたブラックボックス的な使い方をしている人にとってはややハードルが高いと思われます。
今回の記事はかなりマニアックな内容ですが、このエラーに陥った時原因特定に苦労したので、少しでもツクラーの皆様のお役に立てればと思い書かせていただきました。
ご参考になれば・・・