_projector.fieldOfView = sizeField;
cam = _projector.GetComponent<Camera>();
cam.fieldOfView = _projector.fieldOfView;
GameObject g = GameObject.CreatePrimitive(PrimitiveType.Cube);
Destroy(g.GetComponent<BoxCollider>());
MeshFilter meshFilter = g.GetComponent<MeshFilter>();
Mesh mesh = new Mesh();
Vector3[] points = new Vector3[5];
points[0] = _projector.transform.position;
points[1] = cam.ViewportToWorldPoint(new Vector3(0, 0, _projector.farClipPlane));
points[2] = cam.ViewportToWorldPoint(new Vector3(0, 1, _projector.farClipPlane));
points[3] = cam.ViewportToWorldPoint(new Vector3(1, 0, _projector.farClipPlane));
points[4] = cam.ViewportToWorldPoint(new Vector3(1, 1, _projector.farClipPlane));
for (int i = 0; i < 4; i++)
{
pointLineObj[i] = new GameObject().transform;
pointLineObj[i].SetParent(_projector.transform);
pointLineObj[i].position = points[i + 1];
}
mesh.vertices = new Vector3[] {
points[0], points[1], points[2],
points[0], points[3], points[1],
points[0], points[4], points[2],
points[0], points[3], points[4],
points[1], points[2], points[4],
points[1], points[4], points[3]
};
mesh.triangles = new int[] {
0, 1, 2,
3, 4, 5,
8, 7, 6,
11, 10, 9,
14, 13, 12,
17, 16, 15
};
mesh.RecalculateNormals();
mesh.RecalculateBounds();
mesh.MarkDynamic();
meshFilter.mesh = mesh;
g.transform.SetParent(_projector.transform);
// g.AddComponent<TriggerCamera>().cameraEnemy = this;
g.AddComponent<MeshCollider>().convex = true;
g.GetComponent<MeshCollider>().isTrigger = true;
Destroy(g.GetComponent<MeshFilter>());
Destroy(g.GetComponent<MeshRenderer>());
g.AddComponent<Rigidbody>().isKinematic = true;