【发布时间】:2022-07-27 16:06:19
【问题描述】:
我写了一张脚本卡片来生成硬币项目。但是,只有当地图是正方形时,它才会正确生成。我有一张圆形地图,但它似乎生成和方形地图一样,这真的不起作用,因为它会导致硬币在地图之外生成。有任何想法的人请帮助我
【问题讨论】:
标签: unity3d
我写了一张脚本卡片来生成硬币项目。但是,只有当地图是正方形时,它才会正确生成。我有一张圆形地图,但它似乎生成和方形地图一样,这真的不起作用,因为它会导致硬币在地图之外生成。有任何想法的人请帮助我
【问题讨论】:
标签: unity3d
[SerializeField] GameObject coinPrefab;
[SerializeField] int coinsToSpawnCount;
private void Start()
{
SpawnCoins();
}
public void SpawnCoins()
{
for (int i = 0; i < coinsToSpawnCount; i++)
{
GameObject temp = Instantiate(coinPrefab, transform);
temp.transform.position = GetRandomPointInCollider(GetComponent<Collider>());
}
}
Vector3 GetRandomPointInCollider(Collider collider)
{
Vector3 point = new Vector3(
Random.Range(collider.bounds.min.x, collider.bounds.max.x),
Random.Range(collider.bounds.min.y, collider.bounds.max.y),
Random.Range(collider.bounds.min.z, collider.bounds.max.z)
);
if (point != collider.ClosestPoint(point))
{
point = GetRandomPointInCollider(collider);
}
point.y = 1f;
return point;
}
【讨论】: