ScriptableObject pour système d'items

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

ScriptableObject pour système d'items

Message par Matt45400 » 27 Nov 2015 00:15

Bonsoir,

je cherche un faire un système d'objets avec un inventaire. Cependant je ne veux pas hardcoder les objets pour que n'importe qui puisse ajouter des objets sans toucher au code.

Mon attention s'est portée sur les ScriptableObject. Niveau simplicité c'est ce que je recherche mais un objet ne peut pas avoir un champ personnalisé du coup, du genre une durabilité.

Du coup je me demande comment faire. Encapsuler le scriptable objet dans une autre classe ? Utiliser complètement autre chose du style xml/json avec un custom editor ?

Merci

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: ScriptableObject pour système d'items

Message par cayou66 » 27 Nov 2015 00:38

Salut,
ce que je te conseille c'est d'utiliser le scriptable object comme conteneur de data, et ensuite simplement d'avoir un lien vers ce scriptable object dans ton monobehaviour, afin d'y accéder.
Attention cependant, tu ne devrais faire aucun changement de données dans le scriptable object au runtime, car ces changements peuvent potentiellement perdurer une fois le runtime fini. Si tu dois faire ça alors je te conseille tout simplement de faire un clone en runtime, avec "new" sur le scriptable object, et d'utiliser ce clone plutôt que l'original.

Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: ScriptableObject pour système d'items

Message par Matt45400 » 27 Nov 2015 00:47

Merci pour ta réponse cayou.
Oui je pensais à quel chose comme ça. Avec ta réponse j'ai fais un petit tour sur Google et premier le lien, un gars parle d'Instantiate.
Ça peut marcher comme ça aussi tout bêtement non ?
http://forum.unity3d.com/threads/create ... me.355933/
Après s'il y a un risque de persistance c'est pas top.

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: ScriptableObject pour système d'items

Message par cayou66 » 27 Nov 2015 15:48

On utilise la fonction CreateInstance sur le ScriptableObject, pour recevoir une copie.
http://docs.unity3d.com/ScriptReference ... tance.html

Matt45400
Messages : 131
Inscription : 31 Oct 2013 12:58
Localisation : Orléans / Paris

Re: ScriptableObject pour système d'items

Message par Matt45400 » 27 Nov 2015 16:06

Oui mais du coup j'ai une instance vierge, et non un celle d'un asset

Avatar de l’utilisateur
cayou66
Codeur
Codeur
Messages : 6450
Inscription : 30 Juin 2011 14:45
Localisation : Montréal

Re: ScriptableObject pour système d'items

Message par cayou66 » 28 Nov 2015 02:11

Ah oui en effet :)

Répondre

Revenir vers « Scripting »