Files

57 lines
1.6 KiB
C#
Raw Permalink Normal View History

2025-09-25 19:04:05 +08:00
using System.Collections;
using System.Collections.Generic;
2025-12-17 15:50:03 +08:00
using System.IO;
2025-09-25 19:04:05 +08:00
using Convention;
using UnityEngine;
namespace Demo.Game
{
2025-12-17 15:50:03 +08:00
namespace ConfigType
{
public class BaseOnMaterialUpdatementConfig : UpdatementFloatConfig
{
public int TargetMeshRenderer;
public override void Deserialize(BinaryReader reader)
{
TargetMeshRenderer = BinarySerializeUtility.ReadInt(reader);
base.Deserialize(reader);
}
public override void Serialize(BinaryWriter writer)
{
BinarySerializeUtility.WriteInt(writer, TargetMeshRenderer);
base.Serialize(writer);
}
}
}
2025-09-25 19:04:05 +08:00
public abstract class BaseOnMaterialUpdatement : Updatement<float>
{
public abstract string TargetFieldName { get; }
protected override float Lerp(float begin, float end, float t)
{
return Mathf.Lerp(begin, end, t);
}
[Content] public MeshRenderer TargetMeshRenderer;
protected override void UpdateData(float data)
{
if (TargetMeshRenderer != null)
TargetMeshRenderer.material.SetFloat(TargetFieldName, data);
}
/// <summary>
/// 绑定到允许的渲染器
/// </summary>
/// <param name="path">脚本位置</param>
[Convention.RScript.Variable.Attr.Method]
2025-12-17 15:50:03 +08:00
public void Load(ScriptableObject obj)
2025-09-25 19:04:05 +08:00
{
2025-12-17 15:50:03 +08:00
TargetMeshRenderer = obj.GetComponent<MeshRenderer>();
2025-09-25 19:04:05 +08:00
}
}
}