2014-04-24 3 views
2

나는 당신이 걸어 다니는 것과 같은 포켓몬 게임을 만들고 있습니다. 이것은 톱 다운 2d 게임입니다. 그러나 나는 내 앞에서 특정 타일을 감지하려고합니다.2D 레이 캐스팅 탑 다운 게임 유니 티드에서

내 캐릭터는 Y 1이고 맵은 Y 0입니다. 레이크 캐스트를 전달하려고 시도했지만 실제로 작동하지 않았습니다. 여기

내가 뭘하려 :

colliders는 2D colliders 경우
if (Input.GetKey("w") && isMoving == false) 
     { 
      bool disableMove = false; 
      RaycastHit hit; 
      if (Physics.Raycast(transform.position, Vector3.forward, out hit, 2)) 
      { 
       var distanceToGround = hit.distance; 
       Debug.Log("HIT"); 

       if (hit.collider.gameObject.tag == "collision") 
       { 
        disableMove = true; 
        Debug.Log("Tree"); 
       } 
      } 
      if (!disableMove) 
      { 
       Calculatewalk(); 
       anim.Play("WalkingUp"); 
       increment = 0; 
       isMoving = true; 
       startPoint = transform.position; 
       endPoint = new Vector3(transform.position.x, transform.position.y, transform.position.z + 1); 
      } 
      disableMove = false; 
     } 
+0

"didnt가 정말 일"

var distanceToGround = hit.distance; 

라인을 당신이로 실행중인 문제에 대해 우리가 거의 알려줍니다. 컴파일 오류? 런타임 예외? 그들은 무엇인가? 당신은 그것이 무엇인지 그리고 왜 그것이 일어나고 있는지 알아 내기 위해 오류를 봤어? 아니면 예기치 않은 행동입니까? 어떻게 된 거예요? 당신은 무엇을 기대 했습니까? 이미이 문제를 해결하려고 시도한 적이 있습니까? 제발 좀 더 자세히 설명해주세요. – tnw

+0

지도가 얼마나 멀리 있는지 상관없이 원하는 방향으로 나무를 찾을 수 있습니다. 길이를 제한해야합니다.지도를 셀에 구성한 경우 근처의 셀을 쉽게 테스트 할 수 없습니까? – Gusman

+0

아무 것도 감지하지 못했습니다. 나는 그것을 지나서 똑바로 걸을 수 있었다. @tnw – NullReference

답변

2

, 새 유니티 2D 시스템을 사용하지 않을 경우, 우리는 많은 당신을 도울 수 Physics2D.Raycast

사용합니다. 아마 당신은 오른쪽 Z 레이어에 arent. 또한 Vector3.forward는별로 좋지 않습니다. transform.forward을 사용해보십시오.

내가 당신을 도왔 으면 좋겠다!

-2

xD 왜 당신이 c#에서 작성되는 javascript 변수가 않습니다 7

+0

This 의견이어야합니다. –