我创建了一个Unity3d项目,我在对象后面使用了一些聚光灯来获取它们的阴影。我试图获得一次反映在地板上的阴影的真实尺寸(使用我的比例)。有没有办法做到这一点?
答案 0 :(得分:8)
我相信你的问题大多属于Mathematics Stack Exchange,但我希望这会引导你走向正确的方向。
我在这里提出的假设是:
现在,您可以使用以下内容计算阴影的大小:
Vector3 topPoint = YOUR_OBJECT.transform.position + YOUR_OBJECT.transform.lossyScale.y * YOUR_OBJECT_HEIGHT;
Vector3 lightFlatPoint = new Vector3(YOUR_LIGHT.transform.position.x, topPoint.y, YOUR_LIGHT.transform.position.z);
float lightDeltaY = YOUR_LIGHT.transform.position.y - topPoint.y;
float lightFlatToTopPointDistance = Vector3.Distance(lightFlatPoint, topPoint);
float shadowSize = ((YOUR_OBJECT.transform.lossyScale.y * YOUR_OBJECT_HEIGHT) / lightDeltaY) * lightFlatToTopPointDistance;
希望这有帮助,