为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
慕莱坞森 2022-12-31 11:07:57
我试图添加一个脚本,将全局损坏等级附加到对象,但是脚本出现了控制台错误,错误 CS0120:非静态字段、方法或属性需要对象引用AttackStat.atk所以我很困惑,是否需要我没有满足的统一脚本之类的要求,我对统一编程还很陌生谢谢你的时间攻击统计.csusing System.Collections;using System.Collections.Generic;using UnityEngine;public class AttackStat : MonoBehaviour{    public float atk;}
查看完整描述

2 回答

?
开心每一天1111

TA贡献1836条经验 获得超13个赞

解决方案 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;

}


查看完整回答
反对 回复 2022-12-31
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

答案是肯定的,检查静态成员

public class AttackStat : MonoBehaviour{
    public static float atk;
}


查看完整回答
反对 回复 2022-12-31
  • 2 回答
  • 0 关注
  • 64 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信