大家好,我正在尝试制作一个脚本,该脚本将使用TerrainData.GetHeight()函数指定的x,y和z位置在地形上生成植物。 X和Z坐标可以很好地工作,但对于y位置,即使地形高度大于默认/平坦高度,也只能提供地形开始的默认/平坦高度。 因此,当在平坦的地形上产卵植物时,基本上一切正常,但是任何山丘都不会改变它们产卵的高度。
没有植物的地形部分上方的图片确实有它们。他们和其他人处于同一等级。
请参见下面的代码。在此先感谢您的帮助。
(:
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;
}
}