Que sont les « Scriptables Objects » ?
Un ScriptableObject est un conteneur de données que vous pouvez utiliser pour enregistrer de grandes quantités de données, indépendamment des instances de classe. L’un des principaux cas d’utilisation de ScriptableObjects est de réduire l’utilisation de la mémoire de votre projet en évitant les copies de valeurs.
Chaque fois que vous instanciez ce Prefab, il obtient sa propre copie de ces données. Au lieu d’utiliser cette méthode et de stocker des données dupliquées, vous pouvez utiliser un ScriptableObject pour stocker les données, puis y accéder par référence à partir de tous les préfabriqués.
Lorsque vous utilisez l’éditeur, vous pouvez enregistrer des données dans des ScriptableObjects lors de l’édition et au moment de l’exécution, car les ScriptableObjects utilisent l’espace de noms de l’éditeur et les scripts de l’éditeur.
Dans une version déployée, cependant, vous ne pouvez pas utiliser ScriptableObjects pour enregistrer des données, mais vous pouvez utiliser les données enregistrées à partir des actifs ScriptableObject que vous avez configurés pendant le développement.
Les données que vous enregistrez à partir des outils de l’éditeur dans ScriptableObjects en tant qu’actif sont écrites sur le disque et sont donc persistantes entre les sessions.
Code du tutoriel
using UnityEngine;
using TMPro;
public class Player : MonoBehaviour
{
public TMP_Text txtScore;
public DataPlayer dataPlayer;
void Start()
{
GetComponent<Renderer>().material.color = dataPlayer.Color;
txtScore.text = "Score " + dataPlayer.Score.ToString();
}
void Update()
{
float x = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * x * dataPlayer.Speed * Time.deltaTime);
}
public void AddScore()
{
dataPlayer.Score++;
txtScore.text = "Score " + dataPlayer.Score.ToString();
}
public void AddSpeed()
{
dataPlayer.Speed = 10f;
}
public void ChangeColor()
{
dataPlayer.Color = Color.green;
GetComponent<Renderer>().material.color = dataPlayer.Color;
}
}
using UnityEngine;
[CreateAssetMenu()]
public class DataPlayer : ScriptableObject
{
public float Speed;
public Color Color;
public int Score;
}
Apprendre Unity de A à Z
Suivez mon cursus complet sur Unity et devenez autonome en partant de zéro !
Poster un Commentaire
Vous devez vous connecter pour publier un commentaire.