C# 如何在Unity 3D中使用OnTigger进行远程传送或传送门
我是C#的初学者,还在学习。 我只是想知道为什么它根本不起作用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
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;
}
}