Scriptable Object Name#
Scriptable Object / Scriptable Object Name
Can Read
Can Write
Description#
The name of a Scriptable Object
Code#
using System;
using UnityEngine;
using VisualScript.Icons;
namespace VisualScript.Runtime
{
[Get, Set]
[Title("Scriptable Object Name")]
[Category("Scriptable Object/Name")]
[Description("The name of a Scriptable Object")]
[Image(typeof(IconCubeOutline), ColorTheme.Type.Blue, typeof(BadgeScriptableObject))]
[Keywords("Scriptable", "Object")]
[Serializable]
public class TypeStringScriptableObjectName : TypeString
{
[SerializeField] private GetScriptableObject m_ScriptableObject;
public override string GetPreview(GameObject source)
{
ScriptableObject scriptableObject = m_ScriptableObject.GetPreview(source);
return scriptableObject != null ? scriptableObject.name : string.Empty;
}
public TypeStringScriptableObjectName() : this(new GetScriptableObject())
{ }
public TypeStringScriptableObjectName(GetScriptableObject scriptableObject)
{
this.m_ScriptableObject = scriptableObject;
}
public override string Get(Args args)
{
ScriptableObject scriptableObject = this.m_ScriptableObject.Get(args);
return scriptableObject != null ? scriptableObject.name : string.Empty;
}
public override void Set(string value, Args args)
{
ScriptableObject scriptableObject = this.m_ScriptableObject.Get(args);
if (scriptableObject != null) scriptableObject.name = value;
}
public override string ToString()
{
return $"{this.m_ScriptableObject} Name";
}
protected override SubscriptionMode Subscription => SubscriptionMode.OnChange;
}
}