我是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
答案 0 :(得分:1)
此代码看起来会移动门户网站对象,而不是此代码所附加的对象。
void OnTriggerEnter(Collider Portal)
{
Debug.Log ("teleporting");
{
gameObject.transform.position = new Vector3(11.5781f, 9.681356f, 1.419181e-07f);
}
}
如果将目标位置放在门户网站对象上的gameComponent上,那么它将是一个更强大的系统,因此您不必对目标进行硬编码。假设您的门户网站上有一个名为PortalComponent的组件,它有一个名为“Destination”的Vector3字段:
void OnTriggerEnter(Collider Portal)
{
PortalComponent p = Portal.gameObject.GetComponent<PortalComponent>();
if (p != null) {
Debug.Log ("teleporting");
gameObject.transform.position = p.Destination;
}
}
答案 1 :(得分:0)
您可以使用OnTriggerStay并测试那里的传送按钮。