Quantcast
Channel: Questions in topic: "item"
Viewing all articles
Browse latest Browse all 274

NullReferenceException: Object reference not set to an instance of an object & You are trying to create a MonoBehaviour using the 'new' keyword.

$
0
0
I get this null reference with i click P (Adding item id 0 (Apple) to my inventory pointing to this line " if(itm.itemID == id)" As well as in the "Item" Script i get an error "You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all UnityEngine.MonoBehaviour:.ctor()" SCRIPT "GameDB" using System.Collections; using System.Collections.Generic; using UnityEngine; public class GameDB : MonoBehaviour { public List items = new List(); private void Start() { ItemDatabaseSetup(); } private void ItemDatabaseSetup() { items.Add(new Item("Apple", "Gives Hunger", "Apple_Item", 0)); items.Add(new Item("Water", "Gives Thirst", "Water_Item", 1)); } public Item GetItemByID(int id) { foreach(Item itm in items) { if(itm.itemID == id) ➜ ➜ ➜ ➜ ➜ ➜ ➜ ➜ ➜ ➜ ER1 { return itm; } } Debug.LogError("Cant find item by ID!"); return null; } } PART OF INVENOTRY public void AddItem(int id) { if (gameDB == null) { gameDB = GameObject.FindGameObjectWithTag("GameDB").GetComponent(); } Item itemAdd = gameDB.GetItemByID(id); for(int i = 0; i < slots.Count; i++) { if (slots[i].transform.childCount <= 0) { GameObject itemInstance = Instantiate(itemPrefab); itemInstance.transform.SetParent(slots[i].transform); itemInstance.transform.localPosition = Vector2.zero; itemPrefab.GetComponent().sprite = itemAdd.itemSprite; break; } } } } "Item Script" using System; using System.Collections; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; [System.Serializable] public class Item : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler { public string itemName; public string itemDescription; public Sprite itemSprite; public string spriteName; public int itemID; public Item(string name, string description, string spriteName, int id) ➜ ➜ ➜ ➜ ➜ ➜ ➜ ➜ER2 { itemName = name; itemDescription = description; itemSprite = Resources.Load("ItemIcons/" + spriteName); itemID = id; } public Item() { } private Transform startParent; private CanvasGroup canvasGroup; private void Start() { startParent = transform.parent; canvasGroup = GetComponent(); } public void OnBeginDrag(IPointerEnterData eventData) { transform.position = eventData.position; transform.SetParent(transform.parent.parent); canvasGroup.blocksRaycasts = false; } public void OnDrag(PointerEventData eventData) { transform.position = eventData.position; } public void OnEndDrag(PointerEventData eventData) { transform.SetParent(startParent); // Reset Parent transform.localPosition = Vector2.zero; //Reset Position canvasGroup.blocksRaycasts = true; } void IBeginDragHandler.OnBeginDrag(PointerEventData eventData) { throw new NotImplementedException(); } }

Viewing all articles
Browse latest Browse all 274

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>