2017-04-17 2 views
0

이것은 단순 해 보이지만 웬일인지 그것이 나를 벗어난다. 두 개의 bool과 bool을 반환하는 두 개의 메소드가 있습니다. bool1이 true로 설정되면 bool2가 false로 설정되고 반대의 경우도 마찬가지입니다. 다음은 코드의 외관입니다.동시에 둘 다 사실 일 수는 없다는 것을 bool에게 어떻게 알 수 있습니까?

bool b1, b2; 
b1 = b1^GUILayout.Button(); 
b2 = b2^GUILayout.Button(); 

프레임에서 버튼을 누르면 메소드가 true를 반환합니다. XOR (^)을 사용하는 방식은 버튼을 true와 false로 토글합니다.

답변

0

bool이 항상 서로 반대면, 왜 2 개를 모두 사용합니까?

우리가 질문하는 bool은 ballBlueballGreen입니다 (우리는 세계 어느 곳에서나 볼을 가질 수 있습니다 - 빨간 공이 없음). 주어진 공에 대해 하나만 참일 수 있고 다른 사람은 거짓이어야합니다.

이 경우에는 간단히 ballBlue을 사용할 수 있습니다. 값이 true이면 공이 파란색이어야합니다. 그렇지 않다면 공이 녹색 대신 사용된다는 의미입니다.

+0

내가 반환 bools을 사용하고 방법을 필요로하고 방법이 bools을 반환해야하기 때문에이 방법을 변경할 수 있다고 생각합니다. 두 개의 bool을 하나로 컴파일 할 수 있다면 당신의 대답은 효과가 있습니다. 슬프게도 나는 어떻게해야할지 모른다. –

+0

아마도 함수 및 bool의 이름에 대해 더 자세히 설명 할 수 있으므로 특정 상황에 대해 더 잘 이해할 수 있습니까? –

+0

제 질문의 요약을 변경하여 방법이 어떻게 작동하는지 보여줍니다. –

0

은 당신이 부울 반전

b1 = MethodThatReturnsBool1(); 
b2 = (!b1) 

b2 = MethodThatReturnsBool2(); 
b1 = (!b2) 
+0

그때 난 아직도 당신의 질문을받을 필요가 없다는 것을 의미합니다, 당신은 양쪽 방법의 출력에 따라 반대가 필요합니까? 예를 들어, bool1 = method1이 참이면 bool2는 false 여야합니다. 원하는 것이면 내 anwser가 정확합니다. – razzbee

+0

죄송합니다. 실제로 솔루션과 다른 문제가 있습니다. 만약 당신의 솔루션을 사용한다면, bool은 동시에 false가 될 수 없습니다. –

관련 문제