猿问

每次创建对象时都尝试增加实例化位置 UNITY C#

我想知道如何设置以下代码以在每次创建对象时增加实例化位置,因此它们都彼此相邻排列。目前他们只是为了同一个地点而战,然后开始围成一圈跳舞。


public void AddUnit(string unitName, Vector3 spawnPoint, Vector3 rallyPoint, Quaternion rotation, Building creator)

    {

        rallyPoint += new Vector3(-10, 0, 0);

        Units units = GetComponentInChildren<Units>();

        spawnPoint += new Vector3(0, 0, -8);

        GameObject newUnit = (GameObject)Instantiate(ResourceManager.GetUnit(unitName), spawnPoint, rotation);

        newUnit.transform.parent = units.transform;

        Unit unitObject = newUnit.GetComponent<Unit>();


        if (unitObject)

        {


            unitObject.SetBuilding(creator);

            if (spawnPoint != rallyPoint)

            {


                unitObject.StartMove(rallyPoint);


            }

        }

    }


慕侠2389804
浏览 147回答 1
1回答

跃然一笑

这很简单。只需移动此代码&nbsp; &nbsp; spawnPoint += new Vector3(0, 0, -8);到 AddUnit() 函数之外,改为调用它的地方。这个想法是每次调用函数时增加起始位置。这是一个例子。void Update(){&nbsp; &nbsp; spawnPoint += new Vector3(0, 0, -8);&nbsp; &nbsp; AddUnit(unitName, spawnPoint, rallyPoint, rotation, creator);}
随时随地看视频慕课网APP
我要回答