我想做下一个:
获取代码效果很好的截图。 Python脚本输出有下一个视图:
x=X1 y=Y1 ... \n
x=X2 y=Y2 ... \n
其中0 <= X1&lt;屏幕截图宽度,0&lt; = Y1&lt;截图高度。
如您所见 - 位于椅子/桌子投影上的部分点。
我需要获取这个chair / table对象(每个对象都附加了BoxCollider
)。
我尝试使用camera.ScreenPointToRay
和Physics.Raycast
获取光线,但输出错误:
private void ApplyClassTextures()
{
var screenshot = GetComponent<Screenshoter>().MakeScreenshot();
Debug.Log(screenshot);
var map = GetComponent<Scenemap>().MakeMap(screenshot);
var objectContours = new Dictionary<GameObject, List<Scenemap.MapContour>>();
var camera = GetComponent<Camera>();
foreach (var item in map)
{
var ray = camera.ScreenPointToRay(new Vector3(item.X, item.Y, 0.0f));
var rayHit = new RaycastHit();
if (Physics.Raycast(ray, out rayHit, raycastHitDistance))
{
var obj = rayHit.collider.gameObject;
if (!objectContours.ContainsKey(obj))
{
Debug.Log(obj);
objectContours.Add(obj, new List<Scenemap.MapContour>());
}
objectContours[obj].Add(item);
}
}
}
在那里,我可以看到很少的地板/墙面和一把椅子,但没有其他和桌子。