变量仅在 OnTriggerEnter 内更改

问题描述 投票:0回答:1

我正在尝试使用 OnTriggerEnter 函数更改 Health 变量。这有效,但仅限于函数内部。其他地方都保持不变。

    using UnityEngine;

public class EnemyInteractions : MonoBehaviour
{
    public int Health;
    public void Start()
    {
        Health = 10;
    }
    public void OnTriggerEnter(Collider player)
    {
        if (player.gameObject.tag == "Enemy")
        {
            print("HIT");
            Health -= 1; // won't change outside function
            Debug.Log(Health);
        }
    }
}

我尝试了各种方法,从使用另一个变量来获取 Health 变量本身以及使用我能找到的任何其他方法,但它不起作用。不过,

    Debug.Log(Health);    
确实显示了正确的数字,因此它确实发生了变化,但显然仅在函数本身中发生了变化。

c# unity-game-engine variables triggers integer
1个回答
0
投票

如何访问 EnemyInteractions 类?就像 @BugFinder 提到的,你有错误的实例。因此,了解如何访问实例会有所帮助。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.