Unity C#问题

时间:2013-08-22 05:06:00

标签: c# unity3d

我收到此错误:

  

访问非静态成员需要对象引用   `Inventory.ItemID'

我想将ItemID中的Inventory更改为1。

班级ItemSwordUneq

using UnityEngine;
using System.Collections;

public class ItemSwordUneq : MonoBehaviour 
{
    public bool canPickup = false;

    void Update () 
    {
        if(canPickup == true && Input.GetKeyDown(KeyCode.F))
        {
            GameObject player = GameObject.Find("Player");
            Inventory inventory = player.GetComponent<Inventory>();
            Inventory.ItemID = 1;
            Destroy(gameObject);
        }
    }

    void OnTriggerEnter(Collider other)
    {
        canPickup = true;
    }

    void OnTriggerExit(Collider other)
    {
        canPickup = false;
    }

    void OnGUI()
    {
        if(canPickup == true)
        {
            GUI.Label(new Rect(250, 250, 300, 20), "Press 'F' To Pick Up Sword");
        }
    }
}

班级Inventory

using UnityEngine;
using System.Collections;

public class Inventory : MonoBehaviour 
{
    public bool hasItem = false;
    public int ItemID;
}

我做错了什么?任何答案将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可能想要写inventory.ItemID = 1;而不是Inventory.ItemID = 1;

如果您想将player.GetComponent<Inventory>();的结果的ItemId设置为1。

您正尝试在类Inventory上调用方法,而不是在对象inventory上调用方法,并且如果方法不是静态的,则无法理解。