Closed Rapilias closed 2 years ago
検証のみに変更 また、UIElementsベースで動作させる方針で進める
UXMLはSerializedObject
のバインディング機能を備えているが、この際にPlane C#な型をそのままSerializedObject
にすることは出来ない。
SerializedObject
を作る際の制約として
SerializableAttribute
が付与されているUnityEngine.Object
の派生であるというものがある。
間にScriptableObject
をかませることで回避可能だが、このScriptableObject
を作るのも面倒という気持ちもある。
SerializedObject
はプロパティをシリアライズする事が出来ず、C# 7.3で追加される[field: SerializedField]
によって、BackingFieldをシリアライズ対象にすることで動作する。
ただし、この際のバッキングフィールドの名前は変更できず、Unity2022.1.xβ段階では<{PropertyName}>k__BackingField
という命名になる。
更に、この命名はUXMLではタグ文字列と混同される関係で入力できないため、.uxmlファイルに直接<itemData>
とエスケープされた<>
を書きこむ必要がある。
UXMLのプロパティバインディング
完全自動化を実現 これ単体で既に十分機能するので検証終了
概要
Webフロントに投げる想定だったがUIElementが良い感じなのでそちらに寄せる さしあたって各テーブルのViewにあたるものを作成し、ScriptableObjectかC#Scriptのデータを吐き出せるようにする
マスターデータは従来通りmaster memoryに乗っかるため、ランタイムで読むフォーマットに変更はない