首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在不出现对象引用错误的情况下使变量成为非静态变量?(初学者程序员)

如何在不出现对象引用错误的情况下使变量成为非静态变量?(初学者程序员)
EN

Stack Overflow用户
提问于 2020-04-16 13:01:32
回答 1查看 34关注 0票数 1

enemyHealth中的update方法希望我将targetHealth设为静态的,但如果我这样做了,我将无法创建唯一的敌人。

代码语言:javascript
运行
复制
{
    public Text enemyHealth;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        enemyHealth.text = EnemyVitals.targetHealth.ToString();
    }
}
代码语言:javascript
运行
复制
{
    public double targetHealth = 100;

    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {
        if (targetHealth <= 1)
        {
            Destroy(gameObject);
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-04-16 16:08:35

据我所知,这是:enemyHealth.text = EnemyVitals.targetHealth.ToString();试图访问targetHealth,就像您访问静态类一样,例如Vector3.up。这些静态类/方法允许您在不创建类的实例的情况下使用它们的方法。因此,在本例中,您需要一个对EnemyVitals实例的引用,并在该实例上调用.targetHealth。例如,您可以通过EnemyVitals enemyVit = new EnemyVitals();实例化一个字段,或者在第一个类中声明一个公共字段,如:public EnemyVitals enemyVit;,然后在编辑器中将EnemyVitals引用拖放到该字段。我认为你可能更愿意在游戏中以某种方式获得引用,例如通过光线投射到可能的敌人物体等。从你的帖子来看,在我看来,后者更像是你想要的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61243001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档