ソースコード
using System.Linq; using UnityEditor; using UnityEngine; public class Example { [MenuItem( "Tools/Hoge" )] private static void Hoge() { var paths = AssetDatabase .FindAssets( $"t:{nameof( ScriptableObject )}" ) .Select( x => AssetDatabase.GUIDToAssetPath( x ) ) ; AssetDatabase.ForceReserializeAssets( paths ); } }
- ScriptableObject に後から PreferBinarySerialization 属性を付与した場合、
既に作成済みの ScriptableObject はテキスト形式で保存されたままになる - AssetDatabase.ForceReserializeAssets 関数を使用することで
バイナリ形式にシリアライズし直すことができる