본문으로 건너뛰기

문자열의 역할 — text와 asset

시트가 코드가 되는 모습으로


둘 다 코드에서는 그냥 문자열입니다. 달라지는 것은 빌드가 그 컬럼에 무엇을 더 하느냐입니다.

text 는 번역을 위해 따로 모이는 문자열이고, asset 은 그 이름의 파일이 실제로 있어야 하는 문자열입니다.

테이블 Line

[System.Serializable]
public partial class LineRecord
{
#region Values
/// <summary>
/// primary index
/// </summary>
public int Index => _index;

/// <summary>
/// shown to a player
/// </summary>
public string Body => _body;

/// <summary>
/// names a file
/// </summary>
public string Icon => _icon;
#endregion

#region Storage
internal int _index;
internal string _body = "";
internal string _icon = "";
#endregion

#region ToString
public override string ToString()
{
var sb = new StringBuilder("{");
sb.Append("\"Index\":"); ToStringHelper.ToString(Index, sb);
sb.Append(",\"Body\":"); ToStringHelper.ToString(Body, sb);
sb.Append(",\"Icon\":"); ToStringHelper.ToString(Icon, sb);
sb.Append("}");
return sb.ToString();
}
#endregion
}

LineTable.cs

생성된 코드에는 역할이 남지 않습니다. 둘 다 문자열 멤버 하나입니다 — 역할은 빌드 시점에 끝납니다.

  • text — recipe에 번역 파일 타깃을 더하면 그 값들이 거기로 모입니다 (내보내기)
  • asset — recipe가 가리킨 폴더에 그 파일이 있는지 확인하고, 없으면 보고합니다

역할이 산출물의 바이트를 바꾸지 않는다는 것이 이 설계의 요점입니다.