概要
[Serializable]
public struct ResourceLocationJsonData
{
[SerializeField] private string m_internalId;
[SerializeField] private string m_primaryKey;
[SerializeField] private string m_providerId;
[SerializeField] private string m_resourceType;
[SerializeField] private bool m_hasDependencies;
[SerializeField] private int m_dependencyHashCode;
[SerializeField] private ResourceLocationJsonData[] m_dependencies;
public ResourceLocationJsonData( IResourceLocation location )
{
m_internalId = location.InternalId;
m_primaryKey = location.PrimaryKey;
m_providerId = location.ProviderId;
m_resourceType = location.ResourceType.ToString();
m_hasDependencies = location.HasDependencies;
m_dependencyHashCode = location.DependencyHashCode;
m_dependencies = location.Dependencies
.Select( c => new ResourceLocationJsonData( c ) )
.ToArray()
;
}
public string ToJson()
{
return JsonUtility.ToJson( this );
}
public string ToPrettyJson()
{
return JsonUtility.ToJson( this, true );
}
}
使用例
private string InternalIdTransformFunc( IResourceLocation location )
{
var jsonData = new ResourceLocationJsonData( location );
Debug.Log( jsonData.ToPrettyJson() );
return internalId;
}