如何使用 terraindata.GetHeight(x,y)

How to use terraindata.GetHeight(x,y)

大家好,我正在尝试制作一个脚本,该脚本将在使用 terrainData.GetHeight() 函数指定的 x、y 和 z 位置的地形上生成植物。 X 和 Z 坐标工作正常,但对于 y 位置,如果只给我地形开始时的 default/flat 高度,即使地形高度大于 default/flat 高度。 因此,当我在地形的平坦部分产卵时,基本上一切正常,但任何山丘都不会改变它们产卵的高度。

图片上方没有植物的地形部分确实有植物。他们就在它下面,与其他人处于同一水平。

请参阅下面的代码。在此先感谢您的帮助。

(:

    private void spawnPlants() {
    for (int x = 0; x < amountOfPlants; x++) {
        float randomX = Random.Range(transform.position.x, transform.position.x + GetComponent<Terrain>().terrainData.size.x);
        float randomZ = Random.Range(transform.position.z, transform.position.z + GetComponent<Terrain>().terrainData.size.z);

        GameObject newPlant = Instantiate(plants[Random.Range(0, plants.Length)], new Vector3(randomX, GetComponent<Terrain>().terrainData.GetHeight((int)randomX, (int)randomZ), randomZ), Quaternion.identity);
        newPlant.transform.parent = parent.transform;
    }
}

您尝试过使用 Terrain.SampleHeight() 吗?