7/24/2014

Logger изменений проекта.

В дополнение в предыдущему посту http://ucpp.tumblr.com/post/70082969756/unity покажу еще одну интересную штуку, которую я взял на вооружение.
image



Иногда возникает желание помнить и знать, что и когда ты менял в проекте, какие ресурсы добавлял, какие удалял или переносил. Как же это сделать? Пользоваться системой контроля версий? Да! Но иногда она не дает той подробности которую хотелось бы, да и изменения отлеживаются от коммита к коммиту, а как сделать чтобы любое наше действие в Unity  мониторилось?
Итак поехали! Работать будем с созданным ранее классом Importer.cs если он не создан, то создадим его. Думаю код не требует пояснений:
       
using UnityEngine;
using UnityEditor;
using System.IO;
using System;

public class Importer :  AssetPostprocessor  
{
 static void OnPostprocessAllAssets (string[] importedAssets, string[] deletedAssets, 
                                     string[] movedAssets, string[] movedFromAssetPaths) 
 {
   foreach (string str in importedAssets)
    WriteInfo("Reimported Asset: " + str);
   foreach (string str in deletedAssets)
    WriteInfo("Deleted Asset: " + str);
   for(int i=0; i < movedAssets.Length; i++)
    WriteInfo("Moved Asset: " + movedAssets[i] + 
              " from: " + movedFromAssetPaths[i]);
 }

 private static void WriteInfo(string info)
 {
     string path = Application.dataPath + "/Info.log";
  using (StreamWriter file = new StreamWriter(path, true))
  {
   file.WriteLine(DateTime.Now.ToString() + " => " + info);
  }
 }
}
Ну вот и все на этом! Для удобочитаемости длинные строчки пришлось перенести, а так же выкинуть нектороые вещи о которых стоит позаботиться в реальных условиях, однако общую суть мне кажется удалось показать.
https://github.com/ucpp/SimpleLogger/blob/master/SimpleLogger.cs

Комментариев нет:

Отправить комментарий