Detecting the location of a shadow that is being projected onto a plane

I’m trying to do this based on this question:

But not managing to make it.

So, I’m trying to draw lines from an object position to other object vertices, using the following code:

public Transform light;
public Transform cube;
Mesh mesh;
Vector3[] vertices;

void Update()
{
	mesh = cube.GetComponent<MeshFilter>().mesh;
	vertices = mesh.vertices;
	for (var i = 0; i < vertices.Length; i++)
	{
		Debug.DrawLine(light.transform.position, cube.transform.position + transform.TransformPoint(vertices*), UnityEngine.Color.cyan);*
  • }*
    }
    [160508-ads.jpg|160508]*
    But the lines do not match the vertices positions and I can’t figure out why.
    Can someone give me some help? Why are the points in the wrong positions?
    The whole idea is that I wanna know the points defining the shadow in the back wall. That’s why I’m trying to manually ray-casting from the light source to the vertices of the object, so I can later extend those lines to the backplane to match the vertices of the shadow on the wall and use some convex hull algorithm to draw the shadow outline manually.
    Maybe there is another approach to this. Maybe the shadow borders are already defined somewhere else.
    This was me trying to figure it out the hard way, I think.
    If someone could put a light on this, I appreciate it.

You’re using the wrong transform when casting the vertex positions into world space;

//This
cube.transform.position + transform.TransformPoint(vertices*)*

//Should be this
cube.transform.TransformPoint(vertices*)*