Я делаю редактор местности во время выполнения, и мои лучевые трансляции не работают.Как выполнить лучевую трансляцию в позиции мыши, а затем получить координаты, которые я могу использовать для увеличения моей местности?
Я пробовал исходную позицию мыши, которая была лишь немного неточной, а затем я попытался Input.GetAxis()
иCamera.main.ScreenPointToRay()
.
void Update ()
{
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
print("Got Ray" + ray.ToString());
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if (hit.collider.gameObject.GetComponent<Terrain>())
{
Terrain terrain
hit.collider.gameObject.GetComponent<Terrain>();
TerrainData data = terrain.terrainData;
float height = data.GetHeight(
(int)Math.Round((double)Camera.main.ScreenToWorldPoint(Input.mousePosition).x),
(int)Math.Round((double)Camera.main.ScreenToWorldPoint(Input.mousePosition).y));
data.SetHeightsDelayLOD((int)Math.Round(
(double)Camera.main.ScreenToWorldPoint( Input.mousePosition).x),
(int)Math.Round((double)Camera.main.ScreenToWorldPoint(Input.mousePosition).y),
new float[3, 3]
{
{ height + 1.0f / 240000.0f, height + 1.0f / 240000.0f, height + 1.0f / 240000.0f },
{ height + 1.0f / 240000.0f, height + 1.0f / 240000.0f, height + 1.0f / 240000.0f },
{ height + 1.0f / 240000.0f, height + 1.0f / 2400.0f, height + 1.0f / 2400.0f }
});
terrain.ApplyDelayedHeightmapModification();
}
}
}
}
Я ожидал, что местность будет расти в позиции мыши, но она вообще не растет.