在实例化新预制件之前,将预制件轻轻移动到开放空间

问题描述 投票:0回答:1

我正在尝试使用以下代码在相机前面实例化几个预制件:

public GameObject prefab;
private uint instantiatedPrefabs = 0;

public void createObj()
{
    if(instantiatedPrefabs < 10)
    {
        Instantiate(prefab, new Vector3(1, prefab.GetComponent<Renderer>().bounds.size.y/2, 1), Quaternion.identity);
        instantiatedPrefabs++;
    }
}

它完美无瑕地工作,但如果一个或多个预先存在的预制件内出现一个新的预制件,那么预先存在的预制件会经历类似爆炸的事情并从新的预制件中飞走。

我怎样才能检测到我想放置新预制件的位置有预制件,然后轻轻地将它们移到侧面以打开足够的空间?

unity3d instantiation
1个回答
0
投票

最简单的就是像网格或其他东西一样记住一个模式。因此,你知道你将产生10个游戏对象,所以只需将它们放置在新的Vector3(1,instantiatedPrefabs,1)中,这样它们就会处于垂直线上。您可以为x位置设置变量。

© www.soinside.com 2019 - 2024. All rights reserved.