[英]Keeping relative position while teleporting my player?
我正在嘗試建立一個傳送系統,以允許播放器和其他對象在地圖之間移動。 當我輸入觸發器時,我想從另一個門戶進入我進入第一個門戶的相對位置(例如:如果我要從門戶的左側進入,我將從另一個門戶的左側退出) )。
我的代碼:
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);
}
}
}
(我的播放器也可以拾取物品並將其扔到門戶中)
獲取與傳送器的相對位置
var relative = player.transform.position - teleporter.transform.position;
然后當您傳送播放器時
player.transform.position = teleporterExit.transform.position + relative;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.