我是Unity的新手,我想访问我在不同脚本中初始化的变量。我如何访问该变量?我使用标记访问该变量。我想访问paddleIsAlive
变量。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript : MonoBehaviour
{
public void Start()
{
alive = GameObject.FindGameObjectWithTag("Paddle").GetComponent<PaddleScript>();
}
void OnTriggerStay2D(Collider2D collider)
{
if (Input.GetKeyDown("space") && collider.gameObject.tag == "Paddle" && alive.paddleIsAlive == true)
{
// Do something
}
}
}
即使我在start()
中初始化它,也会得到这个错误:
the name alive doesn't exist in the current context
2条答案
按热度按时间monwx1rj1#
当创建一个变量时,你必须显式地设置它的类型。因为你想让你的变量
alive
保持对另一个脚本PaddleScript
的引用,所以它的类型应该是PaddleScript
:然而,如果你这样做,即在
Start()
方法中声明它,它将只在这个函数中被查看。但是因为你还需要在OnTriggerStay2D()
函数中使用它,你必须在任何函数之外声明这个变量,就像这样:eqzww0vc2#
如果你想在碰撞器中获取一个脚本,请确保变量为**
public
**。如果上面的脚本连接到你的paddle,你不需要在Start中使用
GameObject.Find
,只需要使用TryGetComponent
: