﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

/// <summary>
/// 找到Unity的安装目录下文件夹ScriptTemplates：D:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates，Unity中的脚本创建使用的是模板拷贝，拷贝的就是这个文件夹下的脚本
/// 打开里面的 81-C# Script-NewBehaviourScript.cs，这个是创建C#脚本的模板，在里面添加注释内容
/// 或者直接在文本内容里加上注释，如下
/// </summary>
public class FileHeadAutoAdd : UnityEditor.AssetModificationProcessor
{
        private static string annotationStr =
@"/**
*Createed by #COMPANY#
*FileName:     #SCRIPTFULLNAME#
*Author:       #AUTHOR#
*UnityVersion：#UNITYVERSION#
*Date:         #DATE#
*/"+ "\r\n\n"; 


    /// <summary>
    /// 此函数在asset被创建完，文件已经生成到磁盘上，但是没有生成.meta文件和import之前被调用
    /// </summary>
    /// <param name="newFileMeta">由创建文件的path加上.meta组成的</param>
    public static void OnWillCreateAsset(string newFileMeta) {
        string newFilePath = newFileMeta.Replace(".meta", "");
        string fileExt = Path.GetExtension(newFilePath);
        if (fileExt != ".cs")
        {
            return;
        }
        //注意，Application.datapath会根据使用平台不同而不同
        string realPath = Application.dataPath.Replace("Assets", "") + newFilePath;
        string scriptContent = annotationStr+ File.ReadAllText(realPath);

        //这里实现自定义的一些规则
        scriptContent = scriptContent.Replace("#SCRIPTFULLNAME#", Path.GetFileName(newFilePath));
        scriptContent = scriptContent.Replace("#COMPANY#", "yellowTT's game");
        scriptContent = scriptContent.Replace("#AUTHOR#", "yellowTT");
        scriptContent = scriptContent.Replace("#UNITYVERSION#", Application.unityVersion);
        scriptContent = scriptContent.Replace("#DATE#", System.DateTime.Now.ToString("yyyy年MM月dd日,dddd, HH时mm分ss秒"));

        File.WriteAllText(realPath, scriptContent);
    }
}
