저는 현재 Minecraft 클론 (당신이 3 차원 공간에 있고 구조를 만들기 위해 블록을 만들거나 삭제하는 게임)을 만들고 있습니다. 그래서 나는 필요한 모든 것을 얻었습니다. 만약 블록을 보면, 내가 원하는 방식으로 highligthed가되고, "RemoveBlock()"을 rightclick이라고 부르면 현재 블록을 보았습니다. 하지만 이제는 leftclick을 클릭하여 블록을 추가하고 싶습니다.XNA : 1 * 1 * 1 상자가 있는데 어느 쪽에서 클릭하고 있는지 알고 싶습니다. (Minecraft Clone)
내가 가지고있는 것 : AddBlock (Vector3 LookingAt, Vector3 Direction) 여기서 "LookingAt"는 내 Blockdata를 저장하는 곳의 3dArray와 관련이 있습니다. Direction은 Vector3.UnitX/Z/Y와 네거티브 중 하나입니다. 내가 수동으로 Direction = Vector3.UnitY라고 말하면 LookedAt 블록 위의 블록이 추가됩니다. 그게 내가 원하는거야.
그러나 블록을보고있는 쪽을 어떻게 알 수 있습니까? 즉. 결정 방향 : 내가 시도한 것은 LookedatBlock 주변에서 6 개의 구체를 만들고 CameraPossition에서 Ray를 CameraDirection으로 그린 다음 Sphere가 먼저 충돌하는지 확인하려고했습니다. 6 개의 스피어는 큐브의 각면의 가운데에 항상 중심점이 있고 반지름은 0.5f입니다. 이것은 나에게 의미가있다. 그러나 그것은 효과가 없습니다. 이 일을하려면 어떻게해야합니까?
저는 다른 방법으로 사용할 수 있도록 Vector3.UnitX/Y/Z와 같은 결과가 필요합니다.
감사합니다.
감사합니다. 이것은 매우 도움이되었습니다. – Richard