c# - 传送门不断地来回传送我
问题描述
我有一个简单的 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;
}
}
}
}
解决方案
比较变换位置不太可能有用,因为即使是浮动中的微小偏移量(想想小到 0.0000001 的东西会导致条件失败。我建议当玩家传送到另一个传送门时,你放置他们稍微在传送门前面,除了一个小冷却来阻止传送门移动。你需要将玩家的速度(不是速度,速度)转换为他们退出的传送门的方向(transform.forward)让他们朝着正确的方向前进。
推荐阅读
- apache-flink - Apache Flink - 窗口化 - 用于计数的 AggregateFunction
- azure-devops - 看板:根据个人用户偏好自定义板项目上显示的字段数量
- c# - 如何在 C# 中使用 WMI 从 Hyper-v 故障转移群集中删除资源
- java - 关系表删除级联在 4 种情况下,但 Entity-config 只允许 2
- json.net - 在 Json.NET 中使用 $id 的属性值
- vb.net - 使用 vb.net 通过 printdocument 打印时如何自动换行
- php - 如何从另一个类中的一个类中获取变量?
- azure-devops - AzureDevOps Build Pipeline 任务 50 分钟发布工件
- c# - Razor MVC 中不需要的 RenderSection
- junit - junit运行时出现Lombok错误