当玩家与玩家相撞时如何将游戏对象附加到玩家?

时间:2015-10-21 14:23:19

标签: android unity3d

我正在制作一个游戏,其中我的玩家是一个不明飞行物,当玩家与其他游戏物体发生碰撞时,我需要将游戏物体附着或漂浮在玩家(UFO)下方的空中,就像原始的UFO一样。我试着把它们作为一个孩子附上,但它没有用。

我制作了如下脚本:

if (coll) {
    distance = Vector2.Distance (this.transform.position, player.transform.position);

    if (distance < 2) {
        this.transform.parent = encaixe.transform;
        this.transform.localPosition = new Vector2 (0f, 1.2f);
        this.transform.localRotation = Quaternion.identity;
        encaixe.rigidbody2D.gravityScale=0;
    }
}

在使用此脚本时,游戏对象正在附加,但播放器不会像原始一样移动。游戏对象正在向下拉或向上拉。

请告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

我知道这个主题很老,但是也许有人可能会遇到这个问题并且需要答案。

您可以将“碰撞时”的“对象的位置和旋转”主动设置为UFO。 类似于以下内容(伪代码):

private bool hasCollided = false;
void OnCollisionEnter()
{
  hasCollided = true;
}
void LateUpdate()
{
  if (hasCollided)
  {
    followPlayer();
  }
}
void followPlayer()
{
  //update position and rotation
}