首页 > 解决方案 > 传送门不断地来回传送我

问题描述

我有一个简单的 c# 脚本可以在两个门户之间传送我。问题是当我将传送门面朝下放置时,它会一直在它们之间传送我。脚本直立时工作正常。我试图进行冷却,这样它就不会一遍又一遍地传送我。我还尝试将目的地放在门户上方。

这是我的代码:

using UnityEngine;

public class portal : MonoBehaviour
{
    public GameObject portal2;
    public GameObject player;

    void OnTriggerEnter(Collider other)
    {
        if (player.transform.position != portal2.transform.position)
        {
            if(other.CompareTag("Player"))
            {
                player.transform.position = portal2.transform.position;
            }
        }
    }
}

标签: c#unity3d

解决方案


比较变换位置不太可能有用,因为即使是浮动中的微小偏移量(想想小到 0.0000001 的东西会导致条件失败。我建议当玩家传送到另一个传送门时,你放置他们稍微在传送门前面,除了一个小冷却来阻止传送门移动。你需要将玩家的速度(不是速度,速度)转换为他们退出的传送门的方向(transform.forward)让他们朝着正确的方向前进。


推荐阅读