Files
Fishing2/Assets/Scripts/Common/Extensions/IConfigTableExtensions.cs
2025-12-26 20:35:52 +08:00

62 lines
1.7 KiB
C#

using NBC;
using NBC.Asset;
using NBF.Utils;
using UnityEngine;
namespace NBF
{
public static class IConfigTableExtensions
{
public static string GetName(this IConfigTable config)
{
return config.Key.GetName();
}
public static string GetDesc(this IConfigTable config)
{
return config.Key.GetDesc();
}
public static string GetModelPath(this ItemConfig config)
{
return $"Assets/ResRaw/gfx/{config.Model}.prefab";
}
public static GameObject GetModelPrefab(this ItemConfig config)
{
return Assets.Load<GameObject>(config.GetModelPath());
}
public static GameObject Instantiate(this ItemConfig config, Transform parent, Vector3 position,
Quaternion rotation)
{
return Object.Instantiate(config.GetModelPrefab(), position, rotation, parent);
}
public static T InstantiateAndComponent<T>(this ItemConfig config, Transform parent, Vector3 position,
Quaternion rotation) where T : MonoBehaviour
{
var obj = config.Instantiate(parent, position, rotation);
var com = obj.GetComponent<T>();
if (com == null)
{
com = obj.AddComponent<T>();
}
return com;
}
public static T InstantiateAndComponent<T>(this ItemConfig config) where T : MonoBehaviour
{
var obj = Object.Instantiate(config.GetModelPrefab());
var com = obj.GetComponent<T>();
if (com == null)
{
com = obj.AddComponent<T>();
}
return com;
}
}
}