//任务2 下载fbx文件 public static void mission() { string url = AppConst.WebUrl + "/Windows/resourcesbase/fbx/" + Mission.Instance.buildModel.Filename; string code = Mission.Instance.buildModel.Filename.Substring(0, Mission.Instance.buildModel.Filename.IndexOf('.')); string path = AppConst.ddBuildResourcesPath + code + @"_MX1.res\" + Mission.Instance.buildModel.Filename; HttpReqHelper.downloadFile(url, path, delegate(string err) { if (err != null) { // MessageBox.Show("下载FBX出错" + err); Mission.Instance.onFaild("m3下载FBX出错" + err); return; } else { //切换焦点 MouseControl.Click(AppConst.focuspos1); Thread.Sleep(1000); MouseControl.Click(AppConst.focuspos2); Mission.Instance.mainform.showLog("下载fbx完成..."); Mission3.mission(); } }); }
//等待文件上传完成 private static void waitUploadFile() { tar = new Image <Bgr, byte>(Properties.Resources.m7_2); System.Windows.Forms.Timer timerWaitUploadFile = new System.Windows.Forms.Timer(); timerWaitUploadFile.Interval = 1; timerWaitUploadFile.Enabled = true; timerWaitUploadFile.Start(); timerWaitUploadFile.Tick += (sen, eve) => { double result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { ((System.Windows.Forms.Timer)sen).Stop(); ((System.Windows.Forms.Timer)sen).Dispose(); //文件上传完成 Keybd.keybd_event(Keys.Enter, 0, 0, 0); Keybd.keybd_event(Keys.Enter, 0, 2, 0); Thread.Sleep(200); //点击上传数据库按钮 MouseControl.Click(new Point(735, 1097)); Mission.Instance.mainform.showLog("文件已上传..."); waitUploadDB(); } }; }
//当运行失败后调用 public void onFaild(string content) { //排除unity的弹出框 MouseControl.Click(AppConst.focuspos2); Keybd.keybd_event(Keys.Enter, 0, 0, 0); Keybd.keybd_event(Keys.Enter, 0, 2, 0); Keybd.keybd_event(Keys.Enter, 0, 0, 0); Keybd.keybd_event(Keys.Enter, 0, 2, 0); //输出日志 mainform.showLog("出错!3秒后重启:" + buildModel.Filename + " " + buildModel.Name + " " + content); //写入log文件 TxtLog.Log("出错任务:" + buildModel.Filename + " " + buildModel.Name + " " + content); //重新轮询任务 Thread.Sleep(3000); ask(); }
//任务4 截图 public static void mission() { //进行截图 Thread.Sleep(500); Image <Bgr, byte> game; game = GameCapture.Instance.game; Image <Bgr, byte> preImg = game.Copy(new Rectangle(new Point(900, 168), new Size(600, 600))); //保存截图 string code = Mission.Instance.buildModel.Filename.Substring(0, Mission.Instance.buildModel.Filename.IndexOf('.')); string path = AppConst.ddBuildResourcesPath + code + @"_FA1pre.bundle\pre.jpg"; preImg.ToBitmap().Save(path); //删掉hierarchy面板中的model MouseControl.Click(new Point(Mission.Instance.MatchTemplatePosition.X + 5, Mission.Instance.MatchTemplatePosition.Y + 5)); Keybd.keybd_event(Keys.Delete, 0, 0, 0); Keybd.keybd_event(Keys.Delete, 0, 2, 0); Thread.Sleep(200); //切换焦点 MouseControl.Click(AppConst.focuspos1); Thread.Sleep(1000); MouseControl.Click(AppConst.focuspos2); Thread.Sleep(3000); //点击_pre.bundle文件夹 MouseControl.Click(new Point(Mission.Instance.ProjectPosition.X, Mission.Instance.ProjectPosition.Y + 202)); Thread.Sleep(500); //点击pre图片,随后进行设置 tar = new Image <Bgr, byte>(DDBuildHelper.Properties.Resources.m5);//找到预览图位置 double result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { Debug.Print("目标检测的结果: " + result); MouseControl.Click(new Point(Mission.Instance.MatchTemplatePosition.X, Mission.Instance.MatchTemplatePosition.Y + 20)); //进行图片设置 setting(); } else { Debug.Print("目标检测的结果: " + result); // MessageBox.Show("m5:未找到pre图片" + result); Mission.Instance.onFaild("m5:未找到pre图片" + result); return; } }
//等待unity启动完成 private static void waitUnityRun() { tar = new Image <Bgr, byte>(Properties.Resources.m7); System.Windows.Forms.Timer timerWaitUnityRun = new System.Windows.Forms.Timer(); timerWaitUnityRun.Interval = 1; timerWaitUnityRun.Enabled = true; timerWaitUnityRun.Start(); timerWaitUnityRun.Tick += (sen, eve) => { double result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { ((System.Windows.Forms.Timer)sen).Stop(); ((System.Windows.Forms.Timer)sen).Dispose(); //unity 已经启动,点击上传文件按钮 MouseControl.Click(new Point(635, 1097)); Mission.Instance.mainform.showLog("unity已启动..."); waitUploadFile(); } }; }
static int waitUnityLoadFbx = 5000;//等待unity读取fbx的时间。 //任务3 拖拽预制体 public static void mission() { Thread.Sleep(waitUnityLoadFbx); //点选.res文件夹 tar = new Image <Bgr, byte>(DDBuildHelper.Properties.Resources.m4);//先找到project位置 double result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { Debug.Print("目标检测的结果: " + result); MouseControl.Click(new Point(30, Mission.Instance.MatchTemplatePosition.Y + 230)); //点选.res文件夹 MouseControl.Click(new Point(30, Mission.Instance.MatchTemplatePosition.Y + 230)); //点选.res文件夹 这里必须点两下!!! } else { Debug.Print("目标检测的结果: " + result); // MessageBox.Show("m4:未找到.res文件夹" + result); Mission.Instance.onFaild("m4:未找到.res文件夹" + result); return; } //进行拖拽,找到拖拽点 Thread.Sleep(200); MouseControl.Click(new Point(Mission.Instance.ProjectPosition.X, Mission.Instance.ProjectPosition.Y - 100)); //拖拽之前先点击一下hierarchy面板 tar = new Image <Bgr, byte>(DDBuildHelper.Properties.Resources.m4_2); Thread.Sleep(500); result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { Debug.Print("目标检测的结果: " + result); MouseControl.Drag(new Point(Mission.Instance.MatchTemplatePosition.X + 20, Mission.Instance.MatchTemplatePosition.Y + 5), new Vector2(-1, -1), 120, onDragedToHierarchy); } else { Debug.Print("目标检测的结果: " + result); //MessageBox.Show("m4:未找到待拖拽物体" + result); Mission.Instance.onFaild("m4:未找到待拖拽物体" + result); return; } }
//进行图片设置 static void setting() { Thread.Sleep(300); //点击textureType MouseControl.Click(new Point(2300, 147)); Thread.Sleep(300); //点击advanced MouseControl.Click(new Point(2300, 346)); Thread.Sleep(300); //点击Read/Write Enabled MouseControl.Click(new Point(2283, 237)); Thread.Sleep(300); //点击format MouseControl.Click(new Point(2300, 550)); Thread.Sleep(300); //点击RGBA 32bit MouseControl.Click(new Point(2300, 814)); Thread.Sleep(300); //点击apply MouseControl.Click(new Point(2533, 579)); Mission.Instance.mainform.showLog("预览图完成..."); Mission5.mission(); }
//将预制体拖拽到.bundle文件夹中去 static void dragToBundleFolder() { Thread.Sleep(500); tar = new Image <Bgr, byte>(DDBuildHelper.Properties.Resources.m4_3); double result = Mission.Instance.MatchTemplate(tar); if (result > 0.98) { Debug.Print("目标检测的结果: " + result); //拖拽回去之前先双击,方便截图 MouseControl.Click(new Point(Mission.Instance.MatchTemplatePosition.X + 5, Mission.Instance.MatchTemplatePosition.Y + 5)); Thread.Sleep(100); MouseControl.Click(new Point(Mission.Instance.MatchTemplatePosition.X + 5, Mission.Instance.MatchTemplatePosition.Y + 5)); //进行拖拽 MouseControl.Drag2(new Vector2(Mission.Instance.MatchTemplatePosition.X + 5, Mission.Instance.MatchTemplatePosition.Y + 5), new Vector2(Mission.Instance.ProjectPosition.X, Mission.Instance.ProjectPosition.Y + 215), ondragedToBundleFolder); } else { Debug.Print("目标检测的结果: " + result); // MessageBox.Show("m4:回拽时错误:" + result); Mission.Instance.onFaild("m4:回拽时错误" + result); return; } }