public bool animCurve = true;
public bool straightLine = false;
然后在更新中
void Update()
{
if (objectsToMove != null && objectsToMove.Length > 0)
{
if (animCurve)
{
straightLine = false;
AnimationCurve();
}
if (straightLine)
{
animCurve = false;
StraightLineTrack();
}
}
}
在运行游戏时,animCurve是正确的,但是如果我单击直线,则什么也不会发生。我需要先取消选中animCurve,然后再检查直线。
但是,如果未选中StraightLine为true,则可以检查animCurve为true,它将自动将StraightLine更改为false。 为什么它不起作用?为什么我需要先取消选中animCurve,然后再将true选定为true,这是直线?
我希望当我将其中一个标志设置为true时,另一个标志会自动设置为false。
答案 0 :(得分:2)
您有两个布尔变量,但只希望其中一个为真。当一个为真时,另一个为假。在这里应该使用枚举来简化您的逻辑。
您的枚举:
public enum LineType
{
Curve, Straight
}
声明并检查启用了哪一个:
LineType lineType = LineType.Straight;
void Update()
{
if (lineType == LineType.Straight)
{
StraightLineTrack();
}
else if (lineType == LineType.Curve)
{
AnimationCurve();
}
}
要将其更改为曲线:
lineType = LineType.Curve;