簡體   English   中英

在傳送播放器時保持相對位置?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM