Мне кажется, что вы не сбрасываете поле ElapsedTime
, поэтому, если вам нужно будет повторно ввести метод transitionscale()
, условие в выражении while
уже ложно, поэтому метод завершается без каких-либо действий.
Возможные решения этой проблемы: сброс переменной перед каждым вызовом метода ... следующим образом
// Inside the elarge canvas method
ElapsedTime = 0.0f;
StartCoroutine(transitionscale());
Альтернативно, и при меньших затратах вы можете сбросить ее в методе масштабирования транзакции.
IEnumerator transitionscale()
{
ElapsedTime = 0.0f;
while (ElapsedTime < TotalTime)
{
ElapsedTime += Time.deltaTime;
Button.localScale = Vector3.Lerp(new Vector3(0, 0, 0), new
Vector3(9, 7, 7), (ElapsedTime / TotalTime));
yield return null;
}
}
Вам нужно сделать то же самое для метода trasitionscaledown()
. Рассмотрите одно из этих изменений и посмотрите, решит ли это вашу проблему.
Используйте свой макро-проводник для создания нового макроса. Откройте новый макрос и отредактируйте Модуль EnvironmentEvents (можно оставить другой модуль пустым). Вы могли использовать базу данных вместо файла.
Private BuildStopWatch As System.Diagnostics.Stopwatch = New System.Diagnostics.Stopwatch()
Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
BuildStopWatch.Reset()
BuildStopWatch.Start()
End Sub
Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
BuildStopWatch.Stop()
DTE.ToolWindows.OutputWindow.ActivePane.OutputString("Build succeed in " & BuildStopWatch.Elapsed.TotalSeconds & " seconds.")
Dim fileName As String = "D:\BuildTimes.txt"
Try
Dim streamWriter As StreamWriter
If File.Exists(fileName) Then
streamWriter = File.AppendText(fileName)
Else
streamWriter = File.CreateText(fileName)
End If
streamWriter.WriteLine(DateTime.Now.ToString() & " " & "Build Time:" & BuildStopWatch.Elapsed.TotalSeconds)
streamWriter.Close()
streamWriter.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Одна опция состояла бы в том, чтобы создать несколько сценариев в Вашем любимом языке сценариев и добавить их к пред и события сборки сообщения настроек проекта.
Теперь каждый раз, когда Вы выполняете сборку, скрипты будут запущены, и у Вас может быть дорожка сценариев любая информация, которую Вы запрашиваете.
Но естественно это будет только работать на уровне проекта и не автоматически через все проекты.
Это могло бы быть излишество, но можно записать собственную утилиту входа для входа метаданных о сборке для каждого проекта. Отслеживайте количество сборки в тот день через Ваш класс входа.
См. эту ссылку о расширении входа MSBuild и этой ссылки о расширении MSBuild с пользовательскими задачами.
VS только позволяет Вам сцепляться в события сборки уровня проекта поэтому, если это не достаточно, можно использовать сценарий сборки (MSBuild, NAnt и т.д.) для создания решения, которое даст Вам полный контроль тем, что происходит прежде и/или после сборки.
Быть честным хотя, какую пользу Вы извлекли бы из этой статистики на локальной машине? Мы используем сервер сборки CCNET http://ccnet.thoughtworks.com/, который отслеживает время изготовления и времена Модульного теста, и инициирован после фиксации к нашему управлению исходным кодом SVN http://www.collab.net/downloads/subversion/ я рекомендовал бы этот подход для сбора статистики.
Если Вы разрабатываете тот же проект каждый раз, когда можно легко записать, немного сценария для выполнения в разделе "Pre-build tasks" Свойств проекта (нажмите кнопку "Build events" у основания вкладки Compile страницы свойств).
Убедитесь, что модуль EnvironmentsEvents импортирует пространство имен System.IO для доступа к вызовам StreamWriter и File.
http://www.codeproject.com/KB/macros/Increment_Build_Number.aspx
This worked for me, but be sure to Import the System.IO namespace in your EnvironmentsEvents module as Shawn suggested.