我收到此错误:
访问非静态成员需要对象引用 `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;
}
我做错了什么?任何答案将不胜感激。
答案 0 :(得分:0)
您可能想要写inventory.ItemID = 1;
而不是Inventory.ItemID = 1;
。
如果您想将player.GetComponent<Inventory>();
的结果的ItemId设置为1。
您正尝试在类Inventory
上调用方法,而不是在对象inventory
上调用方法,并且如果方法不是静态的,则无法理解。