나는 당신이 말한 않습니다 정확히 프로젝트를 생성하기 위해 시간이 걸렸습니다 광원의 특정 물체를 이 방법은 비효율적으로 보일 수 있지만 지정된 메쉬의 vert count가 낮 으면 모든 것이 잘되어야합니다.
그러면 투영 된 정점의 평균을 취하여 투영 된 큐브의 위치를 계산했습니다. Vector3 averagePosition = new Vector3(verticies.Average(vector => vector.x), verticies.Average(vector => vector.y), verticies.Average(vector => vector.z));
그리고 투영 된 정점 위치 성분 (x, y, z)의 각 범위를 취하여 입방체의 크기를 계산했습니다. Vector3 averageScale = new Vector3(verticies.Max(vector => vector.x) - verticies.Min(vector => vector.x), verticies.Max(vector => vector.y) - verticies.Min(vector => vector.y), normalScale);
참고 : 완전히 새로운 메쉬를 생성하지는 않습니다. 나는 스크립트가 첨부 된 미리 만든 큐브의 변형을 조작하는 중이다.
단점은이 방법이 지금까지 한 축으로 만 제한된다는 것입니다. 고칠 수 있습니다.
다운로드 Github에서
에서 프로젝트 GitHub의 링크 : 당신은 당신이 지역 사회에 도움에 대한 모든 개선 사항을 커밋 할 수 있다면
https://github.com/MyIsaak/Shadow-Mesh/tree/master이 좋은 것입니다. 이 프로젝트는 상용 및 비상업적 용도로 자유롭게 사용할 수 있습니다.
빨간 큐브의 모서리를 통해 광원에서 나오는 Raycast를 사용하고 벽이 벽에 닿는 곳을 확인해보십시오. – TheDjentleman
"두께가 얼마나 큽니까"라는 것을 어떻게 알 수 있습니까? 그림자는 2D입니다 –
너비가 고정됩니다. 1 단위 예를 들면. –