저는 Unity에서 레이크 캐스트를 사용하여 점프하도록하는 캐릭터를 보유하고 있습니다. 그러나 레이캐스가 땅에 떨어지지 않더라도 (나는 디버그 출력으로 레이를 볼 수 있습니다) 플레이어는 여전히 뛰어 넘을 수 있습니다. 왜 광선이 항상 그것이 충돌하고 있다고 생각하는지 어떤 아이디어? 광선이 내 캐릭터 충돌자를 때릴 수 있습니까? 필자는 수 시간 동안 온라인 검색을 해왔으며, 내가 찾은 어떤 것도 상황을 고치고있는 것이 아닙니다.Unity Raycast가 항상 true를 반환합니다.
void FixedUpdate()
{
Ray ray = new Ray();
RaycastHit hit;
ray.origin = transform.position;
ray.direction = Vector3.down;
bool output = Physics.Raycast(ray, out hit);
Debug.DrawRay(ray.origin, ray.direction, Color.red);
if (Input.GetKey(KeyCode.Space) && output)
{
r.AddForce(Vector3.up * 1f, ForceMode.VelocityChange);
}
}
'ray.origin'을 문자 충돌기 외부로 이동 시키려고 했습니까? – Kolichikov
네, 레이를 낮추면 (캐릭터와 땅 아래) 점핑이 없으므로 말이됩니다. 하지만 캐릭터 (가능한 한 캐릭터 피트가있는 레벨에 가깝고 지상 위 여전히 위에있는 캐릭터) 아래에 놓습니다. 땅을 감지하지 않고 항상 점프를 허용합니다. – SJR59
위의 경우와 마찬가지로 레이를 내 캐릭터 위에 놓을 때도 마찬가지입니다. , 그것은 여전히 뛰어 넘을 수 있습니다 ... – SJR59