Scriptable Objects Quick Demo in Unity Game Engine


PlayerData.cs
1
2
3
4
5
6
7
8
9
using UnityEngine;
 
[CreateAssetMenu(menuName ="Player Data", fileName ="New Player Data")]
public class PlayerData : ScriptableObject
{
    public string playerName;
    public string playerClass;
    public Color playerColor;
}

PlayerDisplay.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
using UnityEngine;
 
public class PlayerDisplay : MonoBehaviour
{
    public PlayerData playerData;
 
    void Start()
    {
        transform.GetChild(0).GetComponent<TextMesh>().text = $"Name : {playerData.playerName}";
        transform.GetChild(1).GetComponent<TextMesh>().text = $"Class : {playerData.playerClass}";
        gameObject.GetComponent<Renderer>().material.color = playerData.playerColor;
    }
}