我正在尝试建立一个传送系统,以允许播放器和其他对象在地图之间移动。当我输入触发器时,我想从另一个门户进入我进入第一个门户的相对位置(例如:如果我要从门户的左侧进入,我将从另一个门户的左侧退出) )。
我的代码:
private void OnTriggerEnter(Collider other)
{
if (!justTeleported.Contains(other.gameObject))
{
if (other.transform != null && other.transform.tag == "Player" || other.transform != null && other.transform.tag == "Ammo")
{
Vector3 velocity = other.transform.GetComponent<Rigidbody>().velocity;
other.transform.position=connectedTo.transform.position;
other.transform.GetComponent<Rigidbody>().velocity = velocity;
connectedTo.GetComponent<Portal>().justTeleported.Add(other.gameObject);
}
}
}
(我的播放器也可以拾取物品并将其扔到门户中)
答案 0 :(得分:3)
获取传送器的相对位置
var relative = player.transform.position - teleporter.transform.position;
然后当您传送播放器时
player.transform.position = teleporterExit.transform.position + relative;