我有一个用于在游戏引擎中创作某些动画的类。该动画的变量的创作方式为const float
,如下所示:
const float firstAnimationDuration = 3f;
const float secondAnimationDelay = 1f;
const float secondAnimationDuration = 1f;
在此示例中,第一个动画将花费3秒钟来完成,子动画将在第一个动画开始后1秒钟开始并花费1秒钟来完成。
假设secondAnimation
将在firstAnimation
之前完成,并且在这种情况下,动画代码将被构建。如果在第一个动画完成时第二个动画仍在运行,则系统可能无法正常运行。
问题是其他人可能稍后会编辑这些const float
,因此我需要一种很好的方式来警告他们这些要求。
我添加了解释要求的注释,但理想情况下,我会添加某种控制台错误,或者更好的是编译时错误。
我在类初始化程序中尝试了以下代码:
if (secondAnimationDelay + secondAnimationDuration > firstAnimationDuration)
{
Debug.LogError ("Second animation cannot be longer than First Animation");
}
但这会导致出现编译时警告,指出Debug.LogError
是无法到达的代码(这很有意义!),但是在这种情况下,该警告是针对编译时问题,而不是运行时错误,因此它是应该无法访问。
鉴于我宁愿每次构建时都不会在控制台中留下警告,什么是防止这些const
值更改以避免意外后果的最佳方法?
答案 0 :(得分:0)
总的来说,这似乎是#pragma warning disable
的合法用例。
if (secondAnimationDelay + secondAnimationDuration > firstAnimationDuration)
{
#pragma warning disable
Debug.LogError ("Second animation cannot be longer than First Animation");
#pragma warning restore
}