如何在Unity 3D中使用遥控器进行传送或传送门

本文关键字:传送 遥控器 Unity 3D | 更新日期: 2023-09-27 18:25:22

我是C#的初学者,现在还在学习。我只是想知道为什么它根本不起作用。

void OnTriggerEnter(Collider Portal)
{
    Debug.Log ("waaa1111aa");
    if (Input.GetButtonDown("Jump") && Portal.tag == "Player")
    {
        Portal.transform.position = new Vector3(11.5781f, 9.681356f, 1.419181e-07f);    
    }
}

代码就像我的英雄的门户
如果我真的要删除输入代码,它会起作用
但那不是我想做的有办法吗
当我敲门时,我会先按下按钮或按下键

如何在Unity 3D中使用遥控器进行传送或传送门

这段代码看起来是要移动门户对象,而不是该代码所附加的对象。

void OnTriggerEnter(Collider Portal)
{
    Debug.Log ("teleporting");         
     {
         gameObject.transform.position = new Vector3(11.5781f, 9.681356f, 1.419181e-07f);    
      }
 }

如果你把目的地位置放在门户对象的gameComponent上,这样你就不必硬编码目的地,这将是一个更强大的系统。假设你的门户网站上有一个名为PortalComponent的组件,它有一个Vector3字段,名为"Destination":

void OnTriggerEnter(Collider Portal)
{
    PortalComponent p = Portal.gameObject.GetComponent<PortalComponent>();
     if (p != null) {
     Debug.Log ("teleporting");         
         gameObject.transform.position = p.Destination;    
      }
 }

您可以使用OnTriggerStay,并在那里测试传送按钮。