본문으로 건너뛰기

서버와 클라이언트에 다른 것 주기

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


c 는 클라이언트, s 는 서버, cs 는 양쪽(기본)입니다. 적는 자리가 둘인데, 어느 쪽이든 받지 않는 빌드에는 흔적이 남지 않습니다.

:target 줄에 적으면 그 컬럼 하나입니다. 위는 서버 빌드에서 생성된 코드입니다.

테이블 StageReward

[System.Serializable]
public partial class StageRewardRecord
{
#region Values
/// <summary>
/// which stage
/// </summary>
public int Stage => _stage;

/// <summary>
/// finishing rank
/// </summary>
public global::Tabbit.Fixtures.DocShowcase.Rarity Rank => _rank;

/// <summary>
/// gold paid
/// </summary>
public int Gold => _gold;

/// <summary>
/// drop table
/// </summary>
public string DropTable => _dropTable;
#endregion

#region Storage
internal int _stage;
internal global::Tabbit.Fixtures.DocShowcase.Rarity _rank;
internal int _gold;
internal string _dropTable = "";
#endregion

#region ToString
public override string ToString()
{
var sb = new StringBuilder("{");
sb.Append("\"Stage\":"); ToStringHelper.ToString(Stage, sb);
sb.Append(",\"Rank\":"); ToStringHelper.ToString(Rank, sb);
sb.Append(",\"Gold\":"); ToStringHelper.ToString(Gold, sb);
sb.Append(",\"DropTable\":"); ToStringHelper.ToString(DropTable, sb);
sb.Append("}");
return sb.ToString();
}
#endregion
}

StageRewardTable.cs

같은 시트를 클라이언트로 빌드하면 이렇게 됩니다.

[System.Serializable]
public partial class StageRewardRecord
{
#region Values
/// <summary>
/// which stage
/// </summary>
public int Stage => _stage;

/// <summary>
/// finishing rank
/// </summary>
public global::Tabbit.Fixtures.DocShowcase.Rarity Rank => _rank;

/// <summary>
/// gold paid
/// </summary>
public int Gold => _gold;
#endregion

#region Storage
internal int _stage;
internal global::Tabbit.Fixtures.DocShowcase.Rarity _rank;
internal int _gold;
#endregion

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

StageRewardTable.cs

컬럼이 없습니다. 값이 비어 있거나 0으로 채워지는 것이 아니라, 그 컬럼을 읽는 방법 자체가 생성되지 않습니다 — 데이터 파일에도 없습니다.


선언 셀의 괄호에 적으면 테이블 전체입니다.

테이블 ServerTuning

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

/// <summary>
/// what it tunes
/// </summary>
public string Knob => _knob;

/// <summary>
/// how much
/// </summary>
public float Value => _value;
#endregion

#region Storage
internal int _index;
internal string _knob = "";
internal float _value;
#endregion

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

ServerTuningTable.cs

클라이언트 빌드에는 이 타입이 아예 없습니다. 컬럼이 빠지는 것과 달리 파일도 코드도 생성되지 않으므로, 클라이언트가 실수로 읽을 방법이 없습니다.

자세한 것은 Target Side에 있습니다.