Unity设置父项gameObjects转换为子项转换变量?

时间:2019-01-24 14:08:46

标签: c# unity3d

有没有很好的方法做到这一点,我已经在下面复制了我的代码。这是我的代码,以便使gameObjects在地图的特定区域巡逻,我需要一种方法,以便在生成敌人时相对于在其中生成敌人的gameObject设置转换。

当我从预制体中生成敌人时,敌人应该在生成它的生成点附近巡逻,但是我在游戏中有多个要在其中生成敌人的点。巡逻脚本具有一个转换{{1} },我将派生点对象分配给该对象。

public Transform moveSpots;

1 个答案:

答案 0 :(得分:0)

假设正在生成的对象也成为正在生成的对象的父对象,则可以将所有transform.position引用替换为transform.localPosition。如果没有,则可以使用从生成器的转换调用的Transform.TransformPoint()

Transform Spawner;

void start()
{
    moveSpots = GetComponentInParent<Transform>();
    waitTime = StartwaitTime;
    moveSpots.position = new Vector2(Random.Range(MinX, MaxX), Random.Range(MinY, MaxX));
    moveSpots.position = Spawner.TransformPoint(moveSpots.position);
}

这将占用本地空间moveSpots.position,并将其转换为相对于Spawner的世界空间。