くれすブログスマートフォン用の表示で見るへくれすブログUnityとC#中心の備忘録ですこの広告は、90日以上更新していないブログに表示しています。クラスIDTwitterFacebookHatenaPocket今回はYAMLクラスIDリファレンスを取得する方法についてです。Unityの公式ドキュメントの情報が古いためリフレクションで強引に取得します。YAMLクラスIDとはYAML(ヤメル、ヤムル)はデータ形式の一種です。XMLやJSONなどの同類です。クラスIDとは、その名の通り各クラスに割り当てられたIDのことです。GameObject=1、Component=2...といったように、Unity内の各クラスにはIDが割り振られています*1。どのクラスにどのIDが割り振られているかは、基本的にはUnity公式ドキュメントで公開されています。雰囲気を掴むには5.3のドキュメントのほうがお勧めです。Codeをtrueにしている場合、クラスIDは非常に重要な情報です。Codeとは、ビルド時にUnityエンジン側のコードを必要最低限のみ含める機能です。使用されていないコードを除外することでビルドサイズの削減が見込め、特にWebGLでは影響が顕著に現れます。落とし穴もあり、この「必要最低限」にはAssetBundleが考慮されません。あるコンポーネントが「AssetBundle内で使用されている、かつ、アプリ本体側に含まれていない」場合そのコンポーネントはビルドに含まれないため実行段階でエラーとなります。331」のような形式です。この場合331=SpriteMaskがないぞと怒られているため、SpriteMaskをスプリット対象外に設定すれば解決できます。指定クラスをスプリット対象外とするにはAssets直下にlink.xmlという名前のXMLファイルを作成します。問題は冒頭で述べた通りUnity公式ドキュメントの情報が古く、エラーメッセージで出たクラスIDが必ずしも載っているとは限らない点です。SpriteMaskも本記事を書いている時点での最新版(2018.1ドキュメント)では記載されていません。クラスIDはUnityEditor.UnityTypesクラスが持っています。sealed定義となっているためリフレクションでアクセスします。上記GetClassNameメソッドで指定したIDのクラス名が取得できます。特定のIDを取得するのではなく、すべてをリストアップしたい場合は上記メソッドをfor文で1200回ほど回してください。Unity公式ドキュメントに記載されているIDは1120までなのでそれだけ回せば全IDを取得できるはずです。Equivalent)*1:なお、スクリプトで定義されたクラスはすべてMonoBehaviour=114のクラスIDが割り振られます。Git(GitHub)で管理したい。I...2018-03-16【Unity】XcodeでのSimulatorビルドがクラッシュする問題について以下のエラーメッセージに悩まされている方向けの記事です。今回は音割れに関するTipsです。注目記事はてなブログをはじめよう!hecresさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。