{{- $proxy := .}}{{$sheet := $proxy.Sheet}}{{$excel := $proxy.Excel}}{{$ctx := $proxy.TitleCtx -}}
{{- $clsName := $proxy.ClassName}}{{$fields := $proxy.GetFields -}}
//------------------------------------------------------------------------------
// <auto-generated>
//     This code was auto-generated by ExcelExporter
//     version 2.0
//     from https://github.com/xuzhuoxi/ExcelExporter 
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using UnityEngine;

namespace {{$proxy.Namespace}}
{
    /**
     * @author {AUTHOR}
     * Created on {NowTimeStr} .
     * {{$ctx.RangeName}} {{$ctx.RangeType}} {{$ctx.Language}}
     */
    [Serializable]
    public class {{$clsName}}
    {
        // 以下为属性声明
        {{- range $index, $value := $fields}}
        // {{$value.TitleName}}
        [Tooltip("{{$value.TitleName}}")] [SerializeField] private {{$value.LangType}} {{ToLowerCamelCase $value.FieldLangName}};
        {{- end}}

        // 以下为Get方法
        {{- range $index, $value := $fields}}
        /// <summary>
        /// {{$value.TitleName}}
        /// </summary>
        /// <returns>{{$value.LangType}}</returns>
        /// <remarks>{{$value.TitleRemark}}</remarks>
        public {{$value.LangType}} {{ToUpperCamelCase $value.FieldLangName}} => {{ToUpperCamelCase $value.FieldLangName}};
        {{- end}}

        // 以下为解释数据方法
        // Json数据解释
        public void FromJsonOverride(string data)
        {
            JsonUtility.FromJsonOverwrite(data, this);
        }

        // 二进制数据解释
//		public void FromBinaryOverride(proxy: xu.BinaryReaderProxy)
//		{
            {{- range $index, $value := $fields}}{{$define := $value.LangTypeDefine}}
//          this.{{ToLowerCamelCase $value.FieldLangName}} = proxy.{{$define.GetGetOperate "bin"}}();
            {{- end}}
//		}

        // 静态实例化
        public static {{$clsName}} FromJson(string data)
        {
            return JsonUtility.FromJson<{{$clsName}}>(data);
        }
    }
}