我是一个初学者,我需要一些帮助才能将一个脚本上的功能传递给另一个脚本,以便可以使用他的值。首先,我有一个名为“敌人”的课程,我在其中计算被杀死的敌人,然后我有了一个脚本,该脚本允许玩家使用门进入下一个级别。所以我想在玩家杀死X个敌人后使用计数器“打开”门。 如何传递计数器值?谢谢。
public class Enemies : MonoBehaviour {
public GameObject enemy;
public int health = 100;
public int deathCounter = 0;
public void TakeDamage(int damage)
{
health -= damage;
if (health <= 0)
{
Destroy(enemy);
deathCounter++;
}
}
}
public class nextlevel : MonoBehaviour {
public Enemies deadcounter;
public int index;
private void OnTriggerEnter2D(Collider2D other)
{
if(other.CompareTag("Player"))
{
SceneManager.LoadScene(1);
}
}
}
答案 0 :(得分:1)
为此,您需要引用脚本。这是两种简单的获取方法:
您可以创建类型为Ennemies
的公共变量,也可以创建私有变量并对其进行序列化。
public Ennemies yourScript;
或
[SerializeField]
private Ennemies _yourScript;`
然后,您应该在检查器中看到对脚本的空引用。只需将包含您脚本的GameObject拖到空白位置,它将自动创建对该脚本的引用。
您可以使用GetComponent<>()
从包含脚本的GameObject中提取脚本。您可以通过孩子,父母或第一种方法获得对该对象的引用。
GameObject ennemy;
Enemies yourScript;
yourScript = ennemy.GetComponent<Enemies>();
一旦引用了脚本,就可以简单地将值作为存储脚本的变量的属性来访问。 deathCounter
是一个公共变量,您可以随时随地读取和修改它。
int counter = yourScript.deathCounter;