Bonjours, j'ai finalement voullu régler toutes les erreurs, et 2 erreurs viennent effectivement du code que j'ai ajouter, mais la console me dit qu'il n'y as pas de référence ajouter a l'objet ou bien un truc du genre et j'ne comprend pas, j'ai regarder les lignes désignée et je ne trouve pas, c'est une erreurs du code que j'ai fait ?
Voici les erreurs de la console : ( PlayerIInventory.Update / PlayerInventory.Start )
NullReferenceException: Object reference not set to an instance of an object
PlayerInventory.Start () (at Assets/InventoryMaster/Scripts/ExampleScript/PlayerInventory.cs:156)
NullReferenceException: Object reference not set to an instance of an object
PlayerInventory.Update () (at Assets/InventoryMaster/Scripts/ExampleScript/PlayerInventory.cs:249)
Mais Attention, Quand je lance (play) et bien c'est erreurs s'affiches :
répéter x14
NullReferenceException: Object reference not set to an instance of an object
ConsumeItem.Start () (at Assets/InventoryMaster/Scripts/Item/ConsumeItem.cs:22)
puis:
ArgumentException: The Object you want to instantiate is null.
UnityEngine.Object.CheckNullArgument (System.Object arg, System.String message) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:383)
UnityEngine.Object.Instantiate[T] (T original) (at C:/buildslave/unity/build/Runtime/Export/UnityEngineObject.bindings.cs:274)
CraftResultSlot.Start () (at Assets/InventoryMaster/Scripts/CraftSystem/CraftResultSlot.cs:21)
NullReferenceException: Object reference not set to an instance of an object
Inventory.updateItemList () (at Assets/InventoryMaster/Scripts/Inventory/Inventory.cs:286)
Inventory.Start () (at Assets/InventoryMaster/Scripts/Inventory/Inventory.cs:101)
Et ensuite cela m'affiche une grosse erreurs :
ArgumentException: SceneManager.SetActiveScene failed; the internal DontDestroyOnLoad scene cannot be set active.
UnityEngine.SceneManagement.SceneManager.SetActiveScene (UnityEngine.SceneManagement.Scene scene) <0x37851650 + 0x00052> in <d616be05755d41a089810b5c14e4dd50>:0
UnityEditor.SceneHierarchy.TreeViewItemDoubleClicked (System.Int32 instanceID) (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchy.cs:597)
UnityEditor.IMGUI.Controls.TreeViewController.HandleUnusedMouseEventsForItem (UnityEngine.Rect rect, UnityEditor.IMGUI.Controls.TreeViewItem item, System.Int32 row) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:328)
UnityEditor.IMGUI.Controls.TreeViewController.DoItemGUI (UnityEditor.IMGUI.Controls.TreeViewItem item, System.Int32 row, System.Single rowWidth, System.Boolean hasFocus) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:508)
UnityEditor.IMGUI.Controls.TreeViewController.IterateVisibleItems (System.Int32 firstRow, System.Int32 numVisibleRows, System.Single rowWidth, System.Boolean hasFocus) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:679)
UnityEditor.IMGUI.Controls.TreeViewController.OnGUI (UnityEngine.Rect rect, System.Int32 keyboardControlID) (at C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:605)
UnityEditor.SceneHierarchy.DoTreeView (System.Single searchPathHeight) (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchy.cs:744)
UnityEditor.SceneHierarchy.OnGUI (UnityEngine.Rect rect) (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchy.cs:577)
UnityEditor.SceneHierarchyWindow.DoSceneHierarchy () (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:149)
UnityEditor.SceneHierarchyWindow.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/SceneHierarchyWindow.cs:133)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <ac823e2bb42b41bda67924a45a0173c3>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:342)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:336)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:310)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean customBorder, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:363)
UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:322)
UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:266)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:438)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:421)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:401)
UnityEngine.Experimental.UIElements.EventDispatcher.PropagateEvent (UnityEngine.Experimental.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:754)
UnityEngine.Experimental.UIElements.EventDispatcher.ProcessEvent (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:599)
UnityEngine.Experimental.UIElements.EventDispatcher.Dispatch (UnityEngine.Experimental.UIElements.EventBase evt, UnityEngine.Experimental.UIElements.IPanel panel, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:307)
UnityEngine.Experimental.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.Experimental.UIElements.EventBase e, UnityEngine.Experimental.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:176)
UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch (UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:245)
UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID,
Puis le code pour mieux comprendre mais je ne trouve toujours pas x)
Code : Tout sélectionner
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class PlayerInventory : MonoBehaviour
{
l public GameObject inventory;
public GameObject characterSystem;
public GameObject craftSystem;
private Inventory craftSystemInventory;
private CraftSystem cS;
private Inventory mainInventory;
private Inventory characterSystemInventory;
private Tooltip toolTip;
private InputManager inputManagerDatabase;
Image hpImage;
Image manaImage;
public float maxHealth = 100;
public float maxMana = 100;
float maxDamage = 0;
float maxArmor = 0;
public float currentHealth = 60;
public float currentMana = 50;
float currentDamage = 0;
float currentArmor = 0;
int normalSize = 3;
public void OnEnable()
{
Inventory.ItemEquip += OnBackpack;
Inventory.UnEquipItem += UnEquipBackpack;
Inventory.ItemEquip += OnGearItem;
Inventory.ItemConsumed += OnConsumeItem;
Inventory.UnEquipItem += OnUnEquipItem;
Inventory.ItemEquip += EquipWeapon;
Inventory.UnEquipItem += UnEquipWeapon;
}
public void OnDisable()
{
Inventory.ItemEquip -= OnBackpack;
Inventory.UnEquipItem -= UnEquipBackpack;
Inventory.ItemEquip -= OnGearItem;
Inventory.ItemConsumed -= OnConsumeItem;
Inventory.UnEquipItem -= OnUnEquipItem;
Inventory.UnEquipItem -= UnEquipWeapon;
Inventory.ItemEquip -= EquipWeapon;
}
void EquipWeapon(Item item)
{
if (item.itemType == ItemType.Weapon)
{
}
}
void UnEquipWeapon(Item item)
{
if (item.itemType == ItemType.Weapon)
{
//delete the weapon if you unequip the weapon
}
}
void OnBackpack(Item item)
{
if (item.itemType == ItemType.Backpack)
{
for (int i = 0; i < item.itemAttributes.Count; i++)
{
if (mainInventory == null)
mainInventory = inventory.GetComponent<Inventory>();
mainInventory.sortItems();
if (item.itemAttributes[i].attributeName == "Slots")
changeInventorySize(item.itemAttributes[i].attributeValue);
}
}
}
void UnEquipBackpack(Item item)
{
if (item.itemType == ItemType.Backpack)
changeInventorySize(normalSize);
}
void changeInventorySize(int size)
{
dropTheRestItems(size);
if (mainInventory == null)
mainInventory = inventory.GetComponent<Inventory>();
if (size == 3)
{
mainInventory.width = 3;
mainInventory.height = 1;
mainInventory.updateSlotAmount();
mainInventory.adjustInventorySize();
}
if (size == 6)
{
mainInventory.width = 3;
mainInventory.height = 2;
mainInventory.updateSlotAmount();
mainInventory.adjustInventorySize();
}
else if (size == 12)
{
mainInventory.width = 4;
mainInventory.height = 3;
mainInventory.updateSlotAmount();
mainInventory.adjustInventorySize();
}
else if (size == 16)
{
mainInventory.width = 4;
mainInventory.height = 4;
mainInventory.updateSlotAmount();
mainInventory.adjustInventorySize();
}
else if (size == 24)
{
mainInventory.width = 6;
mainInventory.height = 4;
mainInventory.updateSlotAmount();
mainInventory.adjustInventorySize();
}
}
void dropTheRestItems(int size)
{
if (size < mainInventory.ItemsInInventory.Count)
{
for (int i = size; i < mainInventory.ItemsInInventory.Count; i++)
{
GameObject dropItem = (GameObject)Instantiate(mainInventory.ItemsInInventory[i].itemModel);
dropItem.AddComponent<PickUpItem>();
dropItem.GetComponent<PickUpItem>().item = mainInventory.ItemsInInventory[i];
dropItem.transform.localPosition = GameObject.FindGameObjectWithTag("Player").transform.localPosition;
}
}
}
void Start()
{
hpImage = GameObject.Find("currentHP").GetComponent<Image>();
manaImage = GameObject.Find("currentMana").GetComponent<Image>();
if (inputManagerDatabase == null)
inputManagerDatabase = (InputManager)Resources.Load("InputManager");
if (craftSystem != null)
cS = craftSystem.GetComponent<CraftSystem>();
if (GameObject.FindGameObjectWithTag("Tooltip") != null)
toolTip = GameObject.FindGameObjectWithTag("Tooltip").GetComponent<Tooltip>();
if (inventory != null)
mainInventory = inventory.GetComponent<Inventory>();
if (characterSystem != null)
characterSystemInventory = characterSystem.GetComponent<Inventory>();
if (craftSystem != null)
craftSystemInventory = craftSystem.GetComponent<Inventory>();
}
public void OnConsumeItem(Item item)
{
for (int i = 0; i < item.itemAttributes.Count; i++)
{
if (item.itemAttributes[i].attributeName == "Health")
{
if ((currentHealth + item.itemAttributes[i].attributeValue) > maxHealth)
currentHealth = maxHealth;
else
currentHealth += item.itemAttributes[i].attributeValue;
}
if (item.itemAttributes[i].attributeName == "Mana")
{
if ((currentMana + item.itemAttributes[i].attributeValue) > maxMana)
currentMana = maxMana;
else
currentMana += item.itemAttributes[i].attributeValue;
}
if (item.itemAttributes[i].attributeName == "Armor")
{
if ((currentArmor + item.itemAttributes[i].attributeValue) > maxArmor)
currentArmor = maxArmor;
else
currentArmor += item.itemAttributes[i].attributeValue;
}
if (item.itemAttributes[i].attributeName == "Damage")
{
if ((currentDamage + item.itemAttributes[i].attributeValue) > maxDamage)
currentDamage = maxDamage;
else
currentDamage += item.itemAttributes[i].attributeValue;
}
}
}
public void OnGearItem(Item item)
{
for (int i = 0; i < item.itemAttributes.Count; i++)
{
if (item.itemAttributes[i].attributeName == "Health")
maxHealth += item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Mana")
maxMana += item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Armor")
maxArmor += item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Damage")
maxDamage += item.itemAttributes[i].attributeValue;
}
}
public void OnUnEquipItem(Item item)
{
for (int i = 0; i < item.itemAttributes.Count; i++)
{
if (item.itemAttributes[i].attributeName == "Health")
maxHealth -= item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Mana")
maxMana -= item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Armor")
maxArmor -= item.itemAttributes[i].attributeValue;
if (item.itemAttributes[i].attributeName == "Damage")
maxDamage -= item.itemAttributes[i].attributeValue;
}
}
void Update()
{
// Pour la barre de vie
float percentageHP = ((currentHealth * 100) / maxHealth) / 100;
hpImage.fillAmount = percentageHP;
// Pour la barre de mana
float percentageMana = ((currentMana * 100) / maxMana) / 100;
manaImage.fillAmount = percentageMana;
if (Input.GetKeyDown(inputManagerDatabase.CharacterSystemKeyCode))
{
if (!characterSystem.activeSelf)
{
characterSystemInventory.openInventory();
}
else
{
if (toolTip != null)
toolTip.deactivateTooltip();
characterSystemInventory.closeInventory();
}
}
if (Input.GetKeyDown(inputManagerDatabase.InventoryKeyCode))
{
if (!inventory.activeSelf)
{
mainInventory.openInventory();
}
else
{
if (toolTip != null)
toolTip.deactivateTooltip();
mainInventory.closeInventory();
}
}
if (Input.GetKeyDown(inputManagerDatabase.CraftSystemKeyCode))
{
if (!craftSystem.activeSelf)
craftSystemInventory.openInventory();
else
{
if (cS != null)
cS.backToInventory();
if (toolTip != null)
toolTip.deactivateTooltip();
craftSystemInventory.closeInventory();
}
}
}
}
Les Debug,Log je ne c'est pas comment acceder a cela x)
Ps: A mon niveaux d’expériences, je comprend le code que j'ecrit, mais j'ai encore du mal a repérer une erreurs et la réparé a mes connaissances, si c’était seulement un bug du a des characters '(-* ect.. , je trouverais mais plus loin que cela c'est compliquée encore x)
Merci de votre aide