Buenas gente,
Tengo un típico error de
Object reference not set to an instance of an object y no doy con la solución.
Os comento, al hacer click en un objeto paso el objeto a otro script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.UI;
public class Item3D : MonoBehaviour
{
public int itemID;
public string itemName, itemDescription;
public GameObject itemObject;
public bool couldSave;
public Sprite itemImage;
private void OnMouseDown()
{
ViewItem3D.viewItem3D.StartVisualization(this);
}
}
Lo recogo correctamente en ese script y muestro el nombre y descripción sin problemas, pero al querer pasarlo a otro script para añadir el objeto en el inventario
me da el error que os indico:
public void StartVisualization(Item3D _item3D){
objectToView =Instantiate(_item3D.itemObject, objectPosition);
txtName.text = _item3D.itemName;
txtDescription.text = _item3D.itemDescription;
InventaryController.inventaryController.AddItem(_item3D);
}
Seguro que es una tontería pero no doy con la tecla...
Muchas gracias por adelantado!!
No entiendo nada. itemObject es uin prefab? En cambio no utilizas el objecttoview que es el gameobject instanciado? Y qué es _item3D y donde viene?
Buenas iRob,
ItemObject si, es un prefab. El objectToView lo uso mas tarde para eliminar el objeto instanciado.
_item3D viene del primer fragmento de codigo que se lo paso a StartVisualization sin problemas, pero al pasarselo a InventoryController.inventoryController.AddItem me salta el error...
Pon la línea donde está el error
InventaryController.inventaryController.AddItem(_item3D);
[/quote]
Pues es uno de los dos primeros. Haz una comprobación de null en los dos a ver que pasa.
Ya di con el fallo...el fallo estaba en InventaryController, puse
Awaket en vez
Awake
void Awaket(){
inventaryController=this;
}
Vamos para darme de leches.
iRobb gracias por tu tiempo, al final era una tonteria. A veces el fallo esta en lo más tonto.