Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Unity 3D中使用OnTigger进行远程传送或传送门_C#_Unity3d - Fatal编程技术网

C# 如何在Unity 3D中使用OnTigger进行远程传送或传送门

C# 如何在Unity 3D中使用OnTigger进行远程传送或传送门,c#,unity3d,C#,Unity3d,我是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.4

我是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);    
    }
}
代码就像是我的英雄的门户
如果我真的要删除输入代码,它会工作的
但那不是我想做的有办法吗

当我敲门时,我将首先进入getbuttondown或getkeydown

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

void OnTriggerEnter(Collider Portal)
{
    Debug.Log ("teleporting");         
     {
         gameObject.transform.position = new Vector3(11.5781f, 9.681356f, 1.419181e-07f);    
      }
 }
如果您将目标位置放在门户对象上的gameComponent上,那么它将是一个更加健壮的系统,这样您就不必硬编码目标。假设您的门户上有一个名为PortalComponent的组件,该组件有一个名为“Destination”的Vector3字段:

void ontriggenter(碰撞器入口)
{
PortalComponent p=Portal.gameObject.GetComponent();
如果(p!=null){
Debug.Log(“远程传输”);
gameObject.transform.position=p.目的地;
}
}

您可以使用OnTiggerStay来代替,并测试那里的传送按钮。

如果您能给我们一些提示,让我们知道这个代码应该做什么,以及当您说它不起作用时,您的确切意思是什么,这将非常有帮助?是否存在异常/编译器错误?噢,我的天啊,是的,我忘记了抱歉,代码的用途就像是给我的英雄开了一扇门,当英雄击中它时,按下跳转按钮,它会将英雄传送到一个位置。如果我要删除输入代码,它会起作用,但这不是我想要的“对不起,英语不好,我想使用你要我使用的代码,因为我现在确实有一个硬编码,但问题是我有点不明白,我应该把抱歉和回复的thx放在哪里:(玩家应该有OnTiggerEnter的原始脚本,门户有OnTiggerStay中的PortalComponent脚本和yeah-do按钮测试!
void OnTriggerEnter(Collider Portal)
{
    PortalComponent p = Portal.gameObject.GetComponent<PortalComponent>();

     if (p != null) {
     Debug.Log ("teleporting");         

         gameObject.transform.position = p.Destination;    
      }
 }