public class BuyableItem : MonoBehaviour
{
public float PickUpRadius = 1f;
public InventoryItemData ItemData;
private SphereCollider myCollider;
private void Awake()
{
myCollider = GetComponent<SphereCollider>();
myCollider.isTrigger = true;
myCollider.radius = PickUpRadius;
}
private void OnTriggerEnter(Collider other)
{
var inventory = other.transform.GetComponent<InventoryHolder>();
if (!inventory) return;
if (inventory.InventorySystem.AddToInventory(ItemData, 1))
{
Destroy(this.gameObject);
}
}
public static void UpdateDiamondText(PlayerInventory playerInventory)
{
InventoryUI.newDiamondText.text = playerInventory.NumberOfDiamonds.ToString();
}
}
我將如何解決這個問題?
錯誤 CS0120:非靜態欄位、方法或屬性“InventoryUI.newDiamondText”需要物件參考
uj5u.com熱心網友回復:
這意味著該欄位(或方法或其他任何內容)newDiamondText不是靜態的,但您嘗試使用對該類的靜態參考InventoryUI而不是通過對該類的實體的參考來呼叫它。
如果你打算newDiamondText是靜態的——即只有一個,而不是每個類的副本都有一個——你可以通過標記newDiamondText為來解決問題static。
否則,您將需要通過對以下實體的參考來訪問它InventoryUI——例如(但可能不完全是)這樣的:
InventoryUI inventoryInstance = new InventoryUI();
inventoryInstance.newDiamondText.text = playerInventory.NumberOfDiamonds.ToString();
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/466310.html
下一篇:發布向導沒有單個檔案可執行選項
