저는 당구 게임을 만들려고하고 있으며, 다른 볼을 치고 나서 큐볼 (하얀 공)이 움직이는 방향을 계산하고 싶습니다.Unity3D : Raycasthit 방향을 찾으십시오.
당신은 내가 광선이 볼과 레이 캐스트가로 방향이 변경됩니다되는 각도/방향에 도달하는 각도/방향을 계산 싶어 볼 수 있듯이. linerenderer (3)에서 사용할 수 있도록 Vector3 변수로 표시하려면 각도가 필요합니다.
벌써 치는 공의 방향이 계산되었습니다.
당신이 위대한 도움이 될 수 있다면 도와주세요!
현재 코드 :
RaycastHit hitz;
if (Physics.SphereCast(transform.position, 0.8f, location - transform.position, out hitz, Mathf.Infinity, lmm2))
{
lineRenderer2 = hitz.collider.GetComponentInChildren<LineRenderer>();
lineRenderer2.SetVertexCount(2);
if (!Input.GetKey(KeyCode.Mouse0))
lineRenderer2.SetPosition(0, hitz.point);
if (!Input.GetKey(KeyCode.Mouse0))
{
Vector3 start = hitz.point;
Vector3 end = start + (-hitz.normal * 4);
if (lineRenderer2)
{
if (!Input.GetKey(KeyCode.Mouse0))
lineRenderer2.SetPosition(1, end);
}
if(lineRenderer3)
{
anglelel = Vector3.Angle(hitz.normal, hitz.point);
Vector3 cross = Vector3.Cross(hitz.normal, hitz.point);
if(cross.y > 0)
{
tzt = Quaternion.AngleAxis(90f, hitz.normal) *realStick.transform.forward;
}
if (cross.y < 0)
{
anglelel = -anglelel;
tzt = Quaternion.AngleAxis(270f, hitz.normal) * realStick.transform.forward;
}
Vector3 start2 = hitz.point;
Vector3 end2 = start2 + ((tzt) * 5f);
lineRenderer3.SetPosition(0, hitz.point);
lineRenderer3.SetPosition(1, end2);
}
}
}
이 시간 내 주셔서 감사합니다.
편집 :
코드의이 부분은 현재 일부 진전을 makign,이 변경되었습니다하지만 여전히, 그것은 충분하지 않습니다.
if(lineRenderer3)
{
anglelel = Vector3.Angle(hitz.normal, hitz.point);
Vector3 cross = Vector3.Cross(hitz.normal, hitz.point);
if(cross.y > 0)
{
tzt = Quaternion.AngleAxis(90f, hitz.normal) *realStick.transform.forward;
}
if (cross.y < 0)
{
anglelel = -anglelel;
tzt = Quaternion.AngleAxis(270f, hitz.normal) * realStick.transform.forward;
}
Vector3 start2 = hitz.point;
Vector3 end2 = start2 + ((tzt) * 5f);
lineRenderer3.SetPosition(0, hitz.point);
lineRenderer3.SetPosition(1, end2);
}
이것은 엄격하게 게임을 코딩하는 것보다 더 많은 물리학적인 문제입니다. 큐볼의 그 지점에서 힘을 적용한 결과를 시각화하려한다면, 얼굴 법선과 같은 물리적 속성을 사용하여 계산을 수행해야합니다. 시작을위한 개념은 다음과 같습니다. 코드로 변환해야합니다. http://physics.stackexchange.com/questions/43232/force-applied-off-center-on-an-object – Serlite
나는 찾고 있었다. 그들이 말하고있는 문제는 2D 공간에서, 게임은 3D에서입니다. – Ssiro
게임은 3D로 렌더링되지만 당구대가 평평하지 않으면 모든 물리학이 모두 XZ 평면에 남아 있기 때문에 모든 물리학을 2D로 단순화 할 수 있습니다. – Serlite