我试图添加一个脚本,该脚本将全局损坏等级附加到对象上,但是该脚本出现了控制台错误,
错误CS0120:非静态需要对象引用 字段,方法或属性
AttackStat.atk
所以我很困惑,是否有一个我没有遇到的统一脚本的要求,或者我对统一编程很陌生
感谢您的时间
Attackstat.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AttackStat : MonoBehaviour
{
public float atk;
}
答案 0 :(得分:1)
答案为是,请检查Static Members
public class AttackStat : MonoBehaviour
{
public static float atk;
}
答案 1 :(得分:1)
解决方案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;
}