如何在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);
}
}
代码就像我的英雄的门户
如果我真的要删除输入代码,它会起作用
但那不是我想做的有办法吗
当我敲门时,我会先按下按钮或按下键
这段代码看起来是要移动门户对象,而不是该代码所附加的对象。
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,并在那里测试传送按钮。