동일한 문자열을 두 개의 다른 값과 비교하기 때문에 논리적으로 볼 때, 제시 한 코드는 사실과 동일 할 수 없습니다. 첫 번째 테스트에서 false를 반환하면 false를 반환합니다. 첫 번째 테스트에서 true를 반환하면 첫 번째 테스트에서는 "ball2"로 평가되므로 항상 false를 반환합니다. 따라서 false를 반환합니다. 중 하나 (둘) 측이 사실은, (condition1 || condition2
)
void OnTriggerEnter2D(Collider2D col)
{
if ((col.gameObject.tag == "ball2")
|| (col.gameObject.tag == "ball"))
{
Application.LoadLevel("Main");
}
}
는 PS, 그래, 난 비주얼 스튜디오의 코드를 좋아하는 나 연산자를 사용하는 경우는 true를 반환하는
당신이 찾고 있다면 특히 조건부 블록이 여러 줄인 경우에는 서식을 지정하십시오.
EDIT : 두 개의 개체를 충돌로 가져올 때까지 기다리는 중입니다. 이 경우에는 col
매개 변수 만 수신 했으므로 동일한 객체를 테스트 중이므로이 AND 테스트를 수행 할 수 없습니다. 신중하고 분리 된 이벤트로 각 충돌을 얻으므로 발생마다 플래그를 설정하고 두 플래그가 모두 설정되면 진행해야합니다.
private bool ball = false;
private bool ball2 = false;
void OnTriggerEnter2D(Collider2D col)
{
// Set each flag individually to allow for separate events triggering each
if(col.gameObject.tag == "ball") ball = true;
if(col.gameObject.tag == "ball2") ball2 = true;
// Perform operation once both flags have been set
if(ball && ball2) Application.LoadLevel("Main");
}
'col.gameObject.tag'는 문자열이다. 어떤 가치를 지녔는 지간에, 동시에 "공"과 "공 2"모두와 같을 수는 없습니다. 논리를 재고해야합니다. – user12864
@ user12864 어떻게하면 다중 충돌을 감지 할 수 있습니까? – Uday
크레이 테 2 볼 스프라이트와 홀 스프라이트가 있는데,이 2 볼 스프라이트가 구멍에 들어가면 새로운 장면을로드해야합니다. 내가하려는 일입니다. – Uday