C# Unity3D矢量3远程传送

C# Unity3D矢量3远程传送,c#,unity3d,qvector3d,C#,Unity3d,Qvector3d,嘿,伙计们 我附上了一张图片,以形象地说明我对问题的解释。在我的游戏中,有一个绿色的球沿着无尽的道路滚动,被一个黄色的球追赶。 为了让这条路看起来无穷无尽,当球在x轴上穿过一定距离(上图中的紫色线)时,球会被传送回来(下图中的紫色线)。我是这样做的: if (gameObject.transform.position.x <= -20) { gameObject.transform.position = new Vector3 (transform.position.x + 80,

嘿,伙计们

我附上了一张图片,以形象地说明我对问题的解释。在我的游戏中,有一个绿色的球沿着无尽的道路滚动,被一个黄色的球追赶。 为了让这条路看起来无穷无尽,当球在x轴上穿过一定距离(上图中的紫色线)时,球会被传送回来(下图中的紫色线)。我是这样做的:

if (gameObject.transform.position.x <= -20) {
    gameObject.transform.position = new Vector3 (transform.position.x + 80, transform.position.y, transform.position.z);
}

你想把敌人向后移动80个单位,那么你需要把敌人向后移动80个单位


敌方.transform.position=新矢量3(
敌方.position.x+80,敌方.position.y,敌方.position.z)

这两个球能倒过来吗?你考虑过增加道路而不是传送吗?谢谢,你救了我D
if (gameObject.transform.position.x <= -20) {
    gameObject.transform.position = new Vector3 (transform.position.x + 80, transform.position.y, transform.position.z);
    enemy.transform.position = new Vector3 (transform.position.x + 80, transform.position.y, transform.position.z);
}
void Update ()
{

    //enemy follows the ball with speed 8
    transform.LookAt (target);
    transform.Translate (Vector3.forward * 8 * Time.deltaTime);

    //fix y-position
    Vector3 tmp = transform.position;
    tmp.y = lockedY;
    transform.position = tmp;

}