137 lines
3.5 KiB
C#
137 lines
3.5 KiB
C#
/*
|
||
Creat By LuoJiasi;
|
||
Plz Put in DIY File;
|
||
*/
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
using UnityEditor;
|
||
using UnityEngine;
|
||
using System.Collections;
|
||
using System.IO;
|
||
using System;
|
||
using NUnit.Framework;
|
||
using Thousandto.Core.Base;
|
||
using Thousandto.Code.Center;
|
||
using System.Linq;
|
||
using CoroutinePool = UnityEngine.Gonbest.MagicCube.CoroutinePool;
|
||
|
||
namespace Funcell.DIY.UniScene
|
||
{
|
||
public class RecordTest : EditorWindow
|
||
{
|
||
[MenuItem("Ares/测试工具/录制操作")]
|
||
static void Init()
|
||
{
|
||
var win = (RecordTest)EditorWindow.GetWindow(typeof(RecordTest));
|
||
win.Show();
|
||
win.titleContent = new GUIContent("录制操作");
|
||
}
|
||
#region 配置文件
|
||
protected string _now = DateTime.Now.ToString ("yyyy-MM-dd/") + DateTime.Now.ToString ("HH:mm:ss");
|
||
protected string _logplace = "D:/TestCase/RecordResult.txt" ; //Log存储位置
|
||
private int recordStatus = 0;
|
||
|
||
public List<GameObject> btnlist = new List<GameObject>();
|
||
private List<GameObject> allbtnlist = new List<GameObject>();
|
||
|
||
//测试结果记录到txt文件中,文件地址为_logplace
|
||
protected void LogTest(string resultfile)
|
||
{
|
||
if (!File.Exists(_logplace))
|
||
{
|
||
File.WriteAllText(_logplace, "[Record Start]\r\n");
|
||
}
|
||
File.AppendAllText(_logplace,resultfile + "\r\n");
|
||
Debug.LogWarning(resultfile);
|
||
}
|
||
#endregion
|
||
|
||
private void OnGUI()
|
||
{
|
||
if(GUILayout.Button("录制操作"))
|
||
{
|
||
recordStatus = 0;
|
||
LogTest("【开始录制】");
|
||
CoroutinePool.AddTask(AutoRecord());
|
||
}
|
||
|
||
if(GUILayout.Button("停止录制"))
|
||
{
|
||
recordStatus = 1;
|
||
}
|
||
}
|
||
private IEnumerator AutoRecord()
|
||
{
|
||
while (recordStatus == 0)
|
||
{
|
||
GetBtn();
|
||
List<GameObject> reslut = btnlist.Except(allbtnlist).ToList();
|
||
if (btnlist == null)
|
||
{
|
||
yield return new WaitForSeconds(0.1f);
|
||
}
|
||
else if(reslut == null)
|
||
{
|
||
yield return new WaitForSeconds(0.1f);
|
||
}
|
||
else
|
||
{
|
||
allbtnlist.AddRange(reslut);
|
||
for (int i = 0; i < reslut.Count; i++)
|
||
{
|
||
UIEventListener.Get (reslut[i]).onClick += OnClick_Record;
|
||
}
|
||
reslut.Clear();
|
||
}
|
||
yield return new WaitForSeconds(0.1f);
|
||
if (recordStatus == 1)
|
||
{
|
||
LogTest("【停止录制】");
|
||
yield break;
|
||
}
|
||
}
|
||
}
|
||
|
||
public void GetBtn()
|
||
{
|
||
GameObject go = GameObject.Find ("UIRoot");
|
||
btnlist.Clear ();
|
||
foreach (UIButton obj in go.transform.GetComponentsInChildren<UIButton>())
|
||
{
|
||
btnlist.Add(obj.gameObject);
|
||
}
|
||
}
|
||
private void OnClick_Record(GameObject go)
|
||
{
|
||
UILabel label = go.transform.GetComponentInChildren<UILabel>();
|
||
if (label)
|
||
{
|
||
LogTest("ClickBtn," + GetBtnFullName(go) + "," + label.text + ",");
|
||
}
|
||
else
|
||
{
|
||
LogTest("ClickBtn," + GetBtnFullName(go) + ",");
|
||
}
|
||
}
|
||
private string GetBtnFullName(GameObject obj)
|
||
{
|
||
string fullname = obj.name;
|
||
GameObject pa_obj = obj.transform.parent.gameObject;
|
||
for (int i = 0; i < 10; i++)
|
||
{
|
||
if (pa_obj.name.Contains("UIRoot"))
|
||
{
|
||
break;
|
||
}
|
||
if (pa_obj.name.Contains("[Chain]"))
|
||
{
|
||
break;
|
||
}
|
||
fullname = pa_obj.name + "/" + fullname;
|
||
pa_obj = pa_obj.transform.parent.gameObject;
|
||
}
|
||
return fullname;
|
||
}
|
||
}
|
||
}
|