有没有很好的方法做到这一点,我已经在下面复制了我的代码。这是我的代码,以便使gameObjects在地图的特定区域巡逻,我需要一种方法,以便在生成敌人时相对于在其中生成敌人的gameObject设置转换。
当我从预制体中生成敌人时,敌人应该在生成它的生成点附近巡逻,但是我在游戏中有多个要在其中生成敌人的点。巡逻脚本具有一个转换{{1} },我将派生点对象分配给该对象。
public Transform moveSpots;
答案 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
的世界空间。