Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Unity C#中,如何使球员(滚动球)在与较低平面碰撞时到达起点?_C#_Unity3d - Fatal编程技术网

在Unity C#中,如何使球员(滚动球)在与较低平面碰撞时到达起点?

在Unity C#中,如何使球员(滚动球)在与较低平面碰撞时到达起点?,c#,unity3d,C#,Unity3d,我有一个在飞机上滚动的球,飞机上有一个洞。我在原平面下面放了一个较低的平面。我想设置它,使球员“球”将回到起点,如果它击中较低的平面 我是新来的。我正在考虑使用碰撞方法,或者在碰撞或其他情况下触发,但我不知道如何进行。有什么建议吗 我想出了一个办法。我这样做是为了,如果球的垂直位置低于运动场,它会将游戏对象设置回起始位置,我可以将其设置为球员在第一帧上的位置。您可以存储“起始位置”作为Vector3并使用Unity的OnCollisionCenter方法将球的位置设置为该位置(如果球与下平面碰撞

我有一个在飞机上滚动的球,飞机上有一个洞。我在原平面下面放了一个较低的平面。我想设置它,使球员“球”将回到起点,如果它击中较低的平面


我是新来的。我正在考虑使用碰撞方法,或者在碰撞或其他情况下触发,但我不知道如何进行。有什么建议吗

我想出了一个办法。我这样做是为了,如果球的垂直位置低于运动场,它会将游戏对象设置回起始位置,我可以将其设置为球员在第一帧上的位置。

您可以存储“起始位置”作为
Vector3
并使用Unity的
OnCollisionCenter
方法将球的位置设置为该位置(如果球与下平面碰撞)

// The position of the ball will be stored here.
public Vector3 ballPosition;

// Where the ball should start/go back to if it falls.
public Vector3 startPosition;

void Start() {
    ballPosition = ball.tranform.position;  // Assign the ball position here.
    startPosition = new Vector3(x, y, z);  // Replace x, y, z with your start co-ordinates.
}

// If the ball collides with the lower plane, position it at the Start Position.
void OnCollisionEnter(Collision collision) {
   ballPosition = startPosition;
}

将此代码放入脚本中,并将其放入下平面。然后,当任何物体与该平面碰撞时,球将被传送到起始位置。

如果我记得很清楚,本教程有一个部分,当您从路径上跌落时,您将在开始时重新开始,可以b您应该在添加新功能之前阅读整个教程吗?欢迎使用StackOverflow!请拿着这本书读一读。然后返回并相应地编辑您的问题。