统一脚本可以简单地是一个公共变量吗

我试图添加一个脚本,将全局损坏等级附加到对象,但是脚本出现了控制台错误,


错误 CS0120:非静态字段、方法或属性需要对象引用AttackStat.atk


所以我很困惑,是否需要我没有满足的统一脚本之类的要求,我对统一编程还很陌生


谢谢你的时间


攻击统计.cs


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class AttackStat : MonoBehaviour

{

    public float atk;


}


慕莱坞森
浏览 66回答 2
2回答

开心每一天1111

解决方案 1:如错误消息所述,atk是类的实例成员,AttackStat您需要创建类的实例/对象才能访问它们。例如 :AttackStat attackStatInstance = new AttackStat();float  vlueObject = attackStatInstance.atk // It is accessible now 解决方案 2:如果你真的想在atk不创建实例的情况下使用(比如AttackStat.atk),那么变量应该定义为静态的,这意味着定义将如下所示:public class AttackStat : MonoBehaviour{    public static float atk;}

慕田峪7331174

答案是肯定的,检查静态成员public class AttackStat : MonoBehaviour{     public static float atk; }
打开App,查看更多内容
随时随地看视频慕课网APP