【问题标题】:Why wont this code tp my player to to the given vector3为什么这段代码不能让我的播放器跳转到给定的vector3
【发布时间】:2021-02-08 14:04:06
【问题描述】:

我试图在玩家到达终点线时将其传送到我关卡的起点。我已经制作了一个vector3,其位置是我想将我的播放器移到(x,y,z 位置)这里是代码:

    void OnCollisionEnter (Collision collisionInfo)
    {
        if (collisionInfo.collider.tag == "Finish")
        {
            Player.transform.position = Start;
        }

【问题讨论】:

  • 你应该让问题更清楚。添加更多细节。 Start 是什么? OnCollisionEnter 被调用了吗?
  • 请添加reproducible code,包括所有相关详细信息。你有任何错误吗?如果是这样,也包括它们。你试过Debugging your code 吗?您确定标签已正确分配给您的对象并且没有错字吗?通常使用CompareTag 而不是==,它可以防止拼写错误。

标签: c# unity3d game-development


【解决方案1】:

您需要将您的位置保存在类 vectro3 变量中。 然后将该位置设置为 OnCollisionEnter。

Vector3 startPos = new Vector3(0,0,0);

void OnCollisionEnter (Collision collisionInfo)
{
    if (collisionInfo.collider.tag == "Finish")
    {
        Player.transform.position = startPos;
    }
}

可以在变量声明中设置,也可以在Start()中获取

Vector3 startPos;

void Start() {
    startPos = transform.position;
}

未调试的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多